因此,我需要在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