首页 > 解决方案 > 当我使用 Paste.Special 时会出现一个更新值框

问题描述

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

第二个 PasteSpecial 调用没问题。顶部的输入窗口标题显示 UPDATE VALUES: Ad Spreadsheet 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除了与第一次通话相关的打嗝之外,结果很好。

出现的对话框的图像

在此处输入图像描述

标签: excelvba

解决方案


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


推荐阅读