我正在尝试运行此代码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行,预期')'
答案 0 :(得分:1)
您的错误是因为您正在设置Foldername As String
,但您不需要“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
现在修改电子表格将是您的下一个任务。这应该会让你朝着正确的方向前进。希望有所帮助。