我知道在我提出我的问题时,我可能听起来真的很傻。
我正在做的是试图通过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在接下来的两张纸上继续同样的操作。Q3和Q4.
在我的一生中,我第一次看到一件奇怪的事情发生在运行代码的时候。
当我一次运行完整的代码时,没有断点(F5)、->、Q1和Q4工作表都是空的。成功复制了Q2和Q3工作表。
但是,当我一步一步地运行相同的代码时,执行(F8) -> --所有四个工作表-- Q1、Q2、Q3和Q4 --都填充了所需的数据。
请有人把我的眼睛打开,看看看不见的背景过程:)
我今天找到了答案..。在这么多天之后:)
我把工作表从第三个位置移到第一个位置。但它的内部(1),我没有考虑到.:)
发布于 2014-12-18 10:01:33
我今天找到了答案..。在这么多天之后:)
我把工作表从第三个位置移到第一个位置。但它的内部(1),我没有考虑到.:)
发布于 2014-12-11 13:40:16
如果它在去窃听时工作,那么它应该在运行时工作,除非您在调试期间选择工作簿/工作表。
用这个代替当前的代码。
For i = 1 To 4
ThisWorkbook.Sheets("Q" & i).Range("A1:K30").Value = sht1.Sheets(1).Range("B58:L87").Value
Next i发布于 2014-12-11 13:40:28
而不是复制和粘贴,尝试直接分配值。
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.Valuehttps://stackoverflow.com/questions/27422776
复制相似问题