Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从不同工作簿运行宏时会产生不同的范围结果_Excel_Vba - Fatal编程技术网

Excel 从不同工作簿运行宏时会产生不同的范围结果

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

尝试选择一个范围(R2:R和lastrow-见下文!)来连接前面单元格中的一些值,当我在VBA模式下运行代码时,整个范围都被选中。然而,当我从另一个工作簿(宏将存储在其中)的按钮运行代码时,它突然在1000行中只选择了25行,这很奇怪。知道为什么吗? 代码如下

 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)
。非常感谢,始终是简单的解决方案!