我有一个打开工作簿的子程序,将其特定范围放入变量中,并将该变量作为参数传递给一个函数,该函数应该是MsgBox范围内的每个值并更改它。
Function testFunc(aCol As Range)
Dim i As Integer
i = 0
For Each cell In aCol
MsgBox (cell.Value)
cell.Value = i
i = i + 1
Next
testFunc = i
End Function
Sub testSub()
Dim dataWorkbook As Workbook
Set dataWorkbook = Application.Workbooks.Open("Y:\vba\test_reserves\test_data\0503317-3_FO_001-2582480.XLS")
Set imcomesNamesRange = dataWorkbook.Worksheets("sheet 1").Range("A1:A20")
Cells(1, 5) = testFunc(aRange)
End Sub
但它不会发生 - 它只是当前工作簿的工作表范围(包含宏的工作簿)的MsgBoxes值,而不是读取和编辑新打开的工作簿。这有什么不对?