Excel VBA PasteSpecial不适用于特定单元格

问题描述 投票:0回答:2

我在Excel中有一些VBA代码,可将信息从工作簿的一张纸复制到同一工作簿的另一张纸。除目标工作表上的3个单元格外,所有复制/粘贴代码均有效,我不知道为什么。这是一个代码片段,其中包括一个工作部分和一个断开的部分。

'Works to copy A11 from "Job Entry" to A2 on "Work List"
Sheets("Job Entry").Select    
Range("A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Work List").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

'Does not work to copy B11 from "Job Entry" to M2 on "Work List"
Sheets("Job Entry").Select
Range("B11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Work List").Select
Range("M2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

将单元格A11从“作业输入”复制到“工作列表”的代码工作正常。但是,将单元格B11从“作业输入”复制到“工作列表”的代码没有。所有涉及的单元格都使用日期值,并且它们都被格式化为使用日期格式MM / DD / YY。

我花了很多时间试图找到解决方案,但是找不到任何可以帮助解决这一特定困境的方法。

excel vba copy-paste
2个回答
0
投票

只需将所有Range("...").Select替换为“完全合格”表示法:Activesheet.Range("...").Select

[除此之外,您似乎已经呈现了“宏记录器”的某种修改后的输出。一个“真实的” VBA代码用一个简单的代码行(复制内容和格式)来完成示例的每个块,例如(对于第二个块):

Sheets("Job Entry").Range("B11").Copy Sheets("Work List").Range("M2") 

此外,如果您只是重视,那么@Scott Craner的评论将达到目的。

当然,要注意合并的单元格。


0
投票

很抱歉造成混乱。我知道发生了什么事。尽管我要复制/粘贴的单元格没有合并,但是稍后在子例程中要复制的某些单元格被合并了,它清除了先前粘贴的数据。

感谢所有建议和信息。为白痴的道歉:)。

© www.soinside.com 2019 - 2024. All rights reserved.