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 に答える