Excel 从不同工作簿运行宏时会产生不同的范围结果
尝试选择一个范围(R2:R和lastrow-见下文!)来连接前面单元格中的一些值,当我在VBA模式下运行代码时,整个范围都被选中。然而,当我从另一个工作簿(宏将存储在其中)的按钮运行代码时,它突然在1000行中只选择了25行,这很奇怪。知道为什么吗? 代码如下Excel 从不同工作簿运行宏时会产生不同的范围结果,excel,vba,Excel,Vba,尝试选择一个范围(R2:R和lastrow-见下文!)来连接前面单元格中的一些值,当我在VBA模式下运行代码时,整个范围都被选中。然而,当我从另一个工作簿(宏将存储在其中)的按钮运行代码时,它突然在1000行中只选择了25行,这很奇怪。知道为什么吗? 代码如下 Sub OrganizeTimeRecordingData() Dim lr As Long lr = Cells.Find("*", Cells(1, 1), xlFormulas, xl
Sub OrganizeTimeRecordingData()
Dim lr As Long
lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
Dim tbl As ListObject
Dim wbNames As Variant, wb As Workbook, w As Workbook, El As Variant, boolFound As Boolean
'1. Tracker by Month
wbNames = Split("January,February,March,April,May,June,July,August,September,October,November,December", ",")
For Each w In Workbooks
For Each El In wbNames
If w.Name = "Client Codes_" & El & "20.xlsm" Then
Set wb = w: boolFound = True: Exit For
End If
Next
If boolFound Then Exit For '
Next
'2.Concatenate Values Client name, project component description and project component task into one column at the end of the sheet of data
wb.Activate
Worksheets(1).Name = "TrackerData"
Worksheets(1).Range("R1").Value = "Client Name - Project Component Desciption - Project Component Task"
Worksheets(1).Range("R2:R" & lr).FormulaR1C1 = _
"=CONCATENATE(RC[-12], "" "",RC[-5], "" "",RC[-4])"
在
单元格中有一个隐式ActiveSheet
。查找(“*”,单元格(1,1),xlFormulas,xlPart,xlByRows,xlPrevious,False)。行
。您很可能希望在查找wb
的逻辑之后确定lr
,并限定工作表,例如wb.Worksheets(1)
。非常感谢,始终是简单的解决方案!