当我使用Paste.Special时出现一个更新值框

时间:2019-05-04 10:53:23

标签: excel vba

我打开一个文件并选择一个工作表。我在复制缓冲区中粘贴了材料。下一行对该工作表执行“ PasteSpecial”操作,但是会弹出一个窗口,以使用文件名列表更新值以供选择。

第二个PasteSpecial调用可以。输入窗口顶部的标题显示 更新值:广告电子表格Variant.xslx-这是一周前创建和删除的工作簿的一个版本。

我转到了数据窗口,并删除了“连接”面板中列出的所有依赖项,因此没有连接。我已经通过msgbox调用逐步完成了代码,以查看该错误是否确实与代码行无关,而是来自其他地方-但总是在该行发生。

如果在更新值框中单击“打开”,则不会发生任何事情。

如果我单击“取消”,则宏将继续运行而不会出错。

我在该模块中仅调用一个子例程,该子例程检查输出文件是否已打开。在以相同方式构造的其他三个模块中,我遇到了相同的问题。我知道每个人都讨厌“激活”,但是我是一个初学者(在深水中),我会尽力而为。

我排队我先前打开的输入和输出文件-我只是确保它们可以访问。它不是循环的,因此无需担心“激活”时间。

Option Explicit

Workbooks(Infilename).Activate
Worksheets(InputSheet).Activate
'I pickup the columns to copy

Columns("B:AO").Select
Selection.Copy

'make sure the output file is lined up
Workbooks(Outfilename).Activate
Worksheets(TargetSheet).Activate

Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, 
Operation:=xlNone, _
  SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

除了与第一次Selection.PasteSpecial通话相关的打h之外,结果很好。

出现的对话框的图像

enter image description here

1 个答案:

答案 0 :(得分:-1)

我尝试了此论坛和其他论坛中建议的许多事情。但是解决方案是取消保护电子表格中的页面,转到“数据”选项卡上的“连接”,然后断开所有与早期版本的连接。我不知道他们是如何联系在一起的。但是我遵循的其他建议(检查条件格式和数据验证)虽然没有帮助解决此问题,但它们为整体代码提供了更好的代码,并为我带来了一些新工具。不再有来自任何地方的弹出输入请求。 谢谢StackOverflow。