我的項目包括使用未使用工作簿中的宏從文件夾中的多個不同工作簿中讀取數據。我一直在定義從哪個工作簿獲取信息,而且目前工作狀況良好。但是,我的程序太大了,所以我現在在我的流程中間調用了一些底層的子程序。當我打電話給我時,我得到一個「需要對象」的錯誤。以下是相關剪輯:在調用子程序中,讀取單元格時出現「需要對象」錯誤
Sub LoopFiles()
Dim MyFileName, FilenameNew, MyPath As String
Dim wb1 As Workbook
MyPath = "C:\ExcelT2\"
MyFileName = Dir(MyPath & "*.csv")
Do Until MyFileName = ""
Set wb1 = Workbooks.Open(MyPath & MyFileName)
With wb1
.Sheets.Add After:=.Worksheets(.Worksheets.Count)
.Sheets.Add After:=.Worksheets(.Worksheets.Count)
wb1.Worksheets(1).Select
For i = 17 To 5000
ElseIf wb1.Worksheets(1).Cells(i, 3) <> wb1.Worksheets(1).Cells((i - 1), 3) Then
cn = cn + 1
prevval = prevval + 1
Call One_Wep
'......
End If
End With
Loop
End Sub
Private Sub One_Wep()
If wb1.Worksheets(1).Cells(i, 1) = 1 And wb1.Worksheets(1).Cells((i + 3), 1) = 11 And wb1.Worksheets(1).Cells(i, 3) = wb1.Worksheets(1).Cells((i + 3), 3) And wb1.Worksheets(1).Cells((i + 2), 6) <> 57 Then
OneWep = 1
'......
End If
End Sub
在One_Wep下顯示的If語句中發生錯誤。我想這可能與在被調用的函數中引用wb1有關,但是在四處查看後,我無法弄清楚如何解決這個問題。提前致謝!
對於需要傳入的其他變量(例如,我是否需要這樣做? – Rosie
@Rosie是的,但是如果你有太多的人,你可以考慮將它們聲明爲'Public',或者將它們定義在模塊的頂部(對於同一模塊中的所有'Sub's都可以識別) –