晚上好人!
我正在努力解决一个特定的问题,我已经确定了两个独立的解决方案,但我还没有具体解决它们
我在表格中列出了37个工作表名称(A1:A37),我想要运行的代码如下所示 - 我不知道如何设置' z'到特定的单元格引用 - 例如,如果A1是Sheet1,我希望Z是Sheet1并作为变量。我正在使用For循环遍历单元格。
Workbooks("ED Test.xlsx").Sheets(z).Range("E2:E21").Value = Workbooks("TPT.xlsm").Sheets(z).Range("A2:A21").Value
第二种方法,更麻烦的是让变量在VBA中设置并使用For循环(即For x = 1到37)将两个值连接成一个变量(例如" Sheet"和x)当我这样做时,它会给出一个不同的错误,因为它将串联视为字符串而不是变量
请停止:)
答案 0 :(得分:1)
你需要一个循环。如果您尝试将每个工作表中的E2:E21
设置为同一工作表(但在另一个工作簿)范围A2:A21
中的任何内容,您将遍历这些工作表并完成您所拥有的工作以上:
Sub dothething()
Dim cellSheetName As Range
'loop through all the cells holding sheet names in sheet1 (assuming here)
For Each cellSheetName In Sheet1.Range("A1:A37").Cells
'Copy the values in whatever sheet we found
'Noting that the sheetname is held in the cell's value (cellSheetName.value)
Workbooks("ED Test.xlsx").Sheets(cellSheetName.Value).Range("E2:E21").Value = Workbooks("TPT.xlsm").Sheets(cellSheetName.Value).Range("A2:A21").Value
Next cellSheetName
End Sub
这可能会更加强大,但它是一个很好的起点。