【发布时间】:2016-04-03 02:26:29
【问题描述】:
我正在尝试从工作簿中的每个工作表中复制特定数据,并将其逐个粘贴到不同的工作表上。每张纸上的行数不同,因此我只需要选择非空白单元格(并排除导致空白的公式,即 =“”)。我还需要它跳过 5 张纸,因为它们没有请求的信息。表格[“SUMMARY TEMPLATE”、“MILEAGE Summary”、“MILEAGE TRACKER”、“Activity TRACKER”和“PBI DATA”]
这是我想做的:
- 遍历除上述 5 之外的每个工作表。 在每个工作表上,复制范围 (B26:E38) 中的所有非空白单元格并将它们粘贴到下一个空白单元格下的“活动数据”表上。
我尝试将几个不同的代码拼凑在一起,但没有一个可以一起工作。
请帮忙!
非常感谢任何帮助,谢谢!
这就是我所拥有的,当我在活动表上运行它时它可以工作,但是当我尝试在所有工作表上运行它时(对于工作表中的每个 ws)我得到一堆错误。
Sub a()
Dim LR As Long, cell As Range, rng As Range
Dim ws As Worksheets
For Each ws In Worksheets
With ws
LR = ws.Range("B" & Rows.Count).End(xlUp).row
If ws.Name <> "SUMMARY TEMPLATE" And ws.Name <> "MILEAGE SUMMARY" And ws.Name <> "MILEAGE TRACKER" _
And ws.Name <> "ACTIVITY TRACKER" And ws.Name <> "PBI DATA" Then
For Each cell In .Range("B26:E26" & LR)
If cell.Value <> "" Then
If rng Is Nothing Then
Set rng = cell
Else
Set rng = Union(rng, cell)
End If
End If
Next cell
rng.Select
End With
Next ws
End If
End With
Next
Selection.Copy
Sheets("ACTIVITY TRACKER").Select
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
【问题讨论】:
-
能否粘贴在所有工作表上运行代码时收到的错误信息?
-
如果只有一张工作表运行良好,如果有多个我收到运行时错误'1004:范围类的选择方法失败。
-
我调试后高亮的代码是:rng.Select
-
虽然这可能不是你的问题:你确定
.Range("B26:E26" & LR)不是.Range("B26:E" & LR)? -
我已经尝试了这两种方法,并在突出显示相同的代码时遇到了相同的错误。