我知道,在我提出问题时,我可能听起来非常愚蠢。
我正在尝试通过VBA代码将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
接下来的两张纸继续相同。 Q3和Q4。
在我生命的第一次,我发现在运行代码时发生了一件奇怪的事情。
当我在没有断点的情况下一次运行完整代码时(F5) - > Q1和Q4表是空白的。 Q2和Q3表格已成功复制。
但是 当我逐步执行相同的代码时(F8) - >所有四张Q1,Q2,Q3和Q4都填充了所需的数据。
有人可以睁开眼睛看看看不见的背景过程:)
我今天找到了答案......那是经过这么多天后的事情:)
我将纸张从第3个位置移动到第一个位置。但在内部它(Sheet(1),我没有考虑到考虑....:)
答案 0 :(得分:1)
如果在调试时它起作用,那么它应该在运行时工作,除非你在调试期间选择工作簿/工作表。
尝试使用此代替当前代码。
For i = 1 To 4
ThisWorkbook.Sheets("Q" & i).Range("A1:K30").Value = sht1.Sheets(1).Range("B58:L87").Value
Next i
答案 1 :(得分:1)
尝试直接分配值
,而不是复制和粘贴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
答案 2 :(得分:0)
我今天找到了答案......那是经过这么多天后的事情:)
我将纸张从第3个位置移动到第一个位置。但在内部它(Sheet(1),我没有考虑到考虑....:)