0
我將我的excel vb代碼複製到vbs中,我知道存在語義/邏輯差異,真的很感謝一些指導。我收到上面的錯誤「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中使用'Next',而不是'Next i'。 –
在VBScript中,你總是使用'Next'而不是'Next i'或類似的東西。另外,如果創建Excel應用程序對象,VBScript只能控制Excel。另外 - 你從不*在VBScript中聲明typenames,因爲一切都是變體。實際上,您應該找到一些與Excel交互的VBScript程序的良好示例,並確保您在嘗試修改VBA宏以作爲VBScript程序運行之前瞭解該代碼。 –
@JohnColeman非常感謝!我採納了你的建議,並找到了一些很好的起點。非常感激。 – midiman