因此,我需要在VBA中創建一個Excel宏,它將搜索字符串,然後將其與我選擇的預設字符串進行比較,然後更改單元格的值另一張紙。在Excel工作簿中搜索特定字符串
它是這樣的:
Sub Macro1()
Dim A As Integer
Dim WS As Worksheet
Dim ToCompare, Coniburo As String
Coniburo = "My String"
For Each WS In Worksheets
For A = 1 To Rows.Count
ToCompare = Left(Cells(A, 3), 100)
If InStr(ToCompare, Coniburo) > 0 Then
Sheets("Last Sheet").Cells(21, 2).Value = "233"
End If
Next A
Next
宏作品.......如果我刪除了第一對(通過搜索張一)只要我在片「我的字符串」在哪裏。否則,它不起作用。由於有17張紙,處理需要很長時間,超過一分鐘。
爲什麼不工作?我在這裏閱讀了很多帖子,微軟開發者論壇,一個名爲Tech on the Net的網站,還有一些我錯過了,但我不知道爲什麼。
任何人都可以指向正確的方向嗎?
這是這麼長時間,因爲你是循環通過每一行,所有100萬+,這是超過1700萬循環。這將需要一些時間,找到與每個工作表上的數據最後一行並循環到。 –
你知道你在寫最後一張工作表上的同一個單元格並且將'233「寫入並重寫,對吧? – Jeeped
你也有'Rows.Count',這是不合格的。它只計算活動工作表上的行。您需要使用'WS',即'For A = 1到WS.Rows.Count','... Left(WS.Cells(A,33),')來限定它,'Cells()'。 ..' – BruceWayne