在VBA中传递一个整数参数

我想要做的是在自动更新和更新之间传递一个整型参数,这样每次对于RowNumber都会上升一个,它将自动更新中的值存储起来,然后closures并重新打开Update,然后继续对RowNumber进行计数。 这是我迄今为止。 我如何获得Panel.xls打开和closures?

Public RowNumber As Integer Public LoopCount As Integer Sub auto_open() Application.DisplayAlerts = False Application.ScreenUpdating = False Application.PrintCommunication = False Dim PanelFilePath As String Dim PanelFileName As String Dim PanelLocation As String Dim PanelWB As Workbook PanelFilePath = "D:\umc\UMC Production Files\Automation Files\" PanelFileName = "Panel.xls" PanelLocation = PanelFilePath & Dir$(PanelFilePath & PanelFileName) RowNumber = 0 For LoopCount = 0 To 7 If LoopCount < 7 Then Set PanelWB = Workbooks.Open(Filename:=PanelLocation, UpdateLinks:=3) PanelWB.RunAutoMacros Which:=xlAutoOpen Application.Run "Panel.xls!Update" PanelWB.Close End If Next LoopCount Call Shell("D:\umc\UMC Production Files\Automation Files\Auto.bat", vbNormalFocus) Application.Quit Application.DisplayAlerts = True Application.ScreenUpdating = True Application.PrintCommunication = True End Sub Function Update(LoopCount As Integer) getRowNumber = LoopCount End Function 

Panel.xls!更新

  Sub Update() Dim AutoUpdateTargetFile As String Dim AutoUpdateWB As Workbook For RowNumber = 1 To (Range("AutoUpdate.File").Rows.Count - 1) If (Range("AutoUpdate.File").Rows(RowNumber) <> "") Then AutoUpdateTargetFile = Range("Sys.Path") & Range("Client.Path").Rows(RowNumber) & Range("AutoUpdate.Path ").Rows(RowNumber) & Range("AutoUpdate.File").Rows(RowNumber) Set AutoUpdateWB = Workbooks.Open(Filename:=AutoUpdateTargetFile, UpdateLinks:=3) AutoUpdateWB.RunAutoMacros Which:=xlAutoOpen Application.Run "Auto_Update.xls!Flat" AutoUpdateWB.Close End If Next RowNumber End Sub 

1)。 你已经声明了Public var:

 Public RowNumber As Integer 

所以删除Sub中同一个var的本地声明

 Dim RowNumber As Integer 'remove 

2)。 关于你如何传递参数的第二个问题,请参考下面的例子来演示将parameter passing给Sub ByValByRef两个选项:

  Sub Example(ByVal Num1 As Integer, ByRef Num2 As Integer) 'code End Sub 

希望这会有所帮助。 最好的祝福,