Vba 复制粘贴问题

Vba 复制粘贴问题,vba,excel,Vba,Excel,我知道,当我提出我的问题时,你们中的许多人可能会觉得我很傻 我正在做的是尝试通过VBA代码将粘贴数据从for excel工作表复制到我的主excel工作表 sht1.Sheets(1).Activate Range("B58:L87").Copy ThisWorkbook.Sheets("Q1").Activate Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlan

我知道,当我提出我的问题时,你们中的许多人可能会觉得我很傻

我正在做的是尝试通过VBA代码将粘贴数据从for excel工作表复制到我的主excel工作表

sht1.Sheets(1).Activate
Range("B58:L87").Copy
ThisWorkbook.Sheets("Q1").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

sht2.Sheets(1).Activate
Range("B58:L87").Copy
ThisWorkbook.Sheets("Q2").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
并在接下来的两张纸上继续相同的操作。第三季度和第四季度

我有生以来第一次看到在运行代码时发生了一件奇怪的事情

当我在没有断点的情况下一次性运行完整的代码时(F5) ->Q1和Q4表为空白。已成功复制Q2和Q3图纸

但是 当我一步一步地运行相同的代码时(F8) ->所有四张表Q1、Q2、Q3和Q4都填写了所需数据

有人能帮我打开看不见的背景流程吗:)


我今天找到了答案。。。。那是在这么多天之后:)


我把床单从第三个位置移到第一个位置。但是在内部,它的(工作表(1)我没有考虑到……)

如果在调试时它工作,那么它应该在运行时工作,除非您在调试期间选择工作簿/工作表

请尝试使用此代码,而不是当前代码

For i = 1 To 4
   ThisWorkbook.Sheets("Q" & i).Range("A1:K30").Value = sht1.Sheets(1).Range("B58:L87").Value
Next i

尝试直接指定值,而不是复制和粘贴

Dim src as Range, dst as Range
Set src = sht1.Range("B58:L87")
Set dst = ThisWorkbook.Sheets("Q1").Range("A1")

dst.Resize(src.Rows.Count,src.Columns.Count).Value = src.Value

我今天找到了答案。。。。那是在这么多天之后:)


我把床单从第三个位置移到第一个位置。但在内部(我没有考虑到的工作表(1)…)

Copy-paste-->edited:)它有助于按名称选择工作表和范围。类似于指定范围的
表(“数据”)
范围(“汽车”)
。避免使用
范围(“A1”)
工作表(1)
,因为物体会移动。