0
私はvbsに私のExcel vbコードをコピーしましたが、意味/論理の違いがあることを知っています。上記のエラー "Next i"(44行目)があります。これは本質的に整数です。800A0401 vbsエラー
Set xlBook = GetObject("C:\Users\midi\Desktop\IT\E\PRF.xlsm")
For each wsheet in xlbook.worksheets
msgbox wsheet.name
next
Sub RefreshConns()
' Refreshes the connections according to the specified cells
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Sheets("Run Macro").Activate
Dim connName
Dim connStr
Dim sqltext ' SQL text
Dim TempconnName
Dim TempconnStr
Dim Tempsqltext ' temporary SQL text
Dim i
Dim SiteName
SiteName = ActiveSheet.Cells(1, 2)
'MsgBox (SiteName)
For i = 5 To 11
connName = ActiveSheet.Cells(i, 1).Value
connStr = ActiveSheet.Cells(i, 2).Value
sqltext = ActiveSheet.Cells(i, 4).Value
'MsgBox (connName)
TempconnStr = Replace(connStr, "SiteNameVBA", SiteName)
'Debug.Print (ActiveWorkbook.Connections(connName).ODBCConnection.Connection)
'MsgBox (TempconnStr)
'Tempsqltext = Replace(sqltext, "SiteNameVBA", SiteName)
'On Error Resume Next
ActiveWorkbook.Connections(connName).ODBCConnection.CommandText = sqltext
ActiveWorkbook.Connections(connName).ODBCConnection.Connection = "ODBC;" & TempconnStr
ActiveWorkbook.Connections(connName).Refresh
Next i
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Public Function ZeroToBlank(x String) String
If x = "0" Then
ZeroToBlank = ""
Else
ZeroToBlank = x
End If
End Function
VBScriptでは、「次へ」を使用してください。「次へ」は使用しないでください。 –
VBScriptでは、 'Next i'やそれに類するものではなく、常に' Next'を使用します。また、VBScriptではExcelアプリケーションオブジェクトを作成する場合にのみExcelを制御できます。また、VBScriptの宣言では、すべてが変種なので、決してtypenameを与えません。実際には、Excelと対話するVBScriptプログラムの良い例をいくつか見つけて、VBScriptプログラムとして実行するVBAマクロを変更する前にそのコードを理解しておく必要があります。 –
@JohnColemanありがとうございました!私はあなたの推薦を取って、いくつかの素晴らしい出発点を見つけました。とても有難い。 – midiman