0

我正在尝试运行此代码 VB 代码,但它给了我下面提到的错误。

任何帮助将不胜感激,因为我是 VB 的新手。

**Code :** 
Option Explicit
Public Sub ReadExcelFiles(FolderName As String)
Dim FileName As String

' Add trailing \ character if necessary
'
If Right(FolderName, 1) <> "\" Then FolderName = FolderName & "\"

FileName = Dir(FolderName & "*.xls")

Do While FileName <> ""
Workbooks.Open (FolderName & FileName)

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Name"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Anil"
    Range("A2").Select
End Sub

Workbooks(FileName).Close
FileName = Dir()
Loop
End Sub

Public Sub test()
ReadExcelFiles ("C:\Macro")
End Sub

命令:cscript c:\macro\test.vbs

结果:错误,第 2 行,字符 38,预期 ')'

4

1 回答 1

1

您的错误是因为您正在设置Foldername As String但您不需要“作为字符串”。但是,您的代码中存在更多错误。VBScript 的工作方式与 Visual Basic 或 Excel 中的宏不同。您需要实际调用函数/子例程才能执行某些操作。您必须在代码中的某处(子例程之外)Call test

接下来,Dir() 函数在 VBScript 中不可用,因此您必须使用不同的东西。Dim fso: set fso = CreateObject("Scripting.FileSystemObject")然后使用非常可比的东西fso.FIleExists(FileName)

接下来,您不能像传统上在宏中那样访问 Excel 工作簿。你不能使用 Workbooks.Open (FolderName & FileName). 您可以使用Dim xl: set xl = CreateObject("Excel.application")然后使用xl.Application.Workbooks.Open FileName

这是我只从 vbscript 打开一个 excel 工作簿的代码

Option Explicit

Call test

Sub ReadExcelFiles(FolderName)
    Dim FileName
    Dim fso: set fso = CreateObject("Scripting.FileSystemObject")
    Dim xl: set xl = CreateObject("Excel.application")

    If Right(FolderName, 1) <> "\" Then FolderName = FolderName & "\"

    FileName = (FolderName & "test" & ".xls")

    If (fso.FIleExists(FileName)) Then 
        xl.Application.Workbooks.Open FileName
        xl.Application.Visible = True
    End If
End Sub

Sub test()
    ReadExcelFiles ("C:\Users\Developer\Desktop\")
End Sub

现在修改电子表格将是您的下一个任务。这应该让你朝着正确的方向前进。希望有帮助。

于 2013-02-09T05:29:19.980 回答