我有一个Excel工作簿,其中有两个工作表“任务”和“城市”。我需要将“任务”表中用于验证记录的代码与“城市”表中的代码进行比较。
我能够做到如下:
Dim CityString As String
Dim CityArray() As String
'Get the last row
'Dim lastRow As Integer
LastRow = Sheets("Task").UsedRange.Rows.Count
nLastRowSheet2 = Sheets("Cities").UsedRange.Rows.Count
Dim c As Range
Dim d As Range
Dim e As Variant
'Turn screen updating off to speed up macro code.
'User won't be able to see what the macro is doing, but it will run faster.
Application.ScreenUpdating = False
For Each c In Worksheets("Task").Range("A2:A" & LastRow)
CityString = c
CityArray() = Split(CityString, ";")
For Each e In CityArray()
e = Trim(e)
Dim rngFnder As Range
On Error Resume Next
Set rngFnder = Sheets("Cities").Range("A2:A" & nLastRowSheet2).Find(e)
If rngFnder Is Nothing Then
c.Interior.Color = vbRed
End If
On Error GoTo 0
Next
Next
现在,我还有另一个要求,我必须在两个不同的工作簿中执行相同的操作。
(“任务”和“城市”工作表位于两个不同的工作簿上)
谁能告诉我;我必须对上述代码进行哪些所有更改?
当您说“在两个不同的excelssheets上”时,我猜您是说它们在不同的Excel工作簿文件中?
使用以下行时,是指活动工作簿中的“任务”表。
Worksheets("Task").Range("A2:A" & LastRow)
您应该指定工作簿,以避免写错工作簿。使用thisWorkbook指的是带有代码的工作簿,例如
ThisWorkbook.Worksheets("Task").Range("A2:A" & LastRow)
要访问任何打开的工作簿(包括当前工作簿),请使用
Workbooks("example.xls").Worksheets("Task").Range("A2:A" & LastRow)
如果工作簿已关闭,则可以使用
dim wrk as Workbook
set wrk = Workbooks.Open("C:\Docs\example.xls")
wrk.Worksheets("Task").Range("A2:A" & LastRow)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句