我是一名处理大量财务报表的会计。
我通常使用 vlookup 将另一个电子表格中的数字拉入包含所需格式的模板中。对我来说,最好的解决方案是
- 复制我的 Vlookup 公式
- 选择整个模板
- F5->特殊->搜索空白
- 复制粘贴特殊公式
这是我的问题。我想要的模板包含我不想丢失的求和公式等。但是,在我复制粘贴特殊公式并尝试复制粘贴特殊值后,我无法复制粘贴,因为 Excel 说它无法处理多个选择。然后逐行浏览并将 vlookup 转换为值就变成了一项痛苦的任务。有什么解决方案吗?
答案1
好吧,VBA 是解决此类问题的黄金标准:不需要“繁琐的工作”的“繁琐的工作”。但是,您可以使用某种解决方法。
首先,为了澄清您的问题,我认为您的方法是将公式(单数)粘贴到多个单元格中,然后根据与这些单元格相关的信息,在所有单元格中产生不同的结果(可能)。然后,您需要复制这些(不同的)结果并将它们(一步)粘贴为值。而就在您尝试复制这些结果以进行最后一步时,Excel 却犹豫了。选择一个大块是不可接受的,因为它会包含您想要的小计公式,因此在粘贴时也会将它们转换为值。
没有办法解决这个问题。人们一直在要求 Excel 解决这个问题,但 Excel 有一个功能,可以将不连续的单元格复制并粘贴为一组连续的数据...但是...如果它无法弄清楚如何呈现您想要复制的内容,它会在开始时阻止您并拒绝继续。
那么,事情是这样的...
从概念上讲,这符合模板的概念,因此不应该太令人讨厌。突出显示所有单元格并选择性粘贴公式。让 Excel 计算,然后启动宏录制器(单击屏幕左下角“Ready”字样旁边的小相机图标),并为其命名并设置快捷键组合(如果需要)。当该对话框消失时,开始工作。对于每个单元格,一个接一个,您将按下F2
,注意光标位于单元格中整个公式的绝对末尾,按下Ctrl-Shift-Home
突出显示单元格中的所有内容,然后立即按下F9
并注意整个公式被评估并替换为其结果。然后按下 ,Enter
将您移动到下一个突出显示的单元格(方便)。对每个单元格重复此操作,直到突出显示返回到您执行此操作的第一个单元格(实际上,如果您走得太远并重复几次也没关系,只是不要停下来)。一定要小心按下按键,以免破坏突出显示。单击相机图标下方看起来相当不同的图标以结束录制。
这是一个使用 VBA 的解决方案,但不需要了解实际的 VBA 即可实现。这是我的回旋余地……此时,您有一个带有宏的模板,必须将其保存为 XLSM 类型的文件:在本例中为 XLTM 文件。好吧,如果您将它作为实际的正式模板。如果您像我一样,您有一堆只具有普通 XLSX 文件类型的“模板”,在这种情况下,XLSM 就没问题了。
进一步的问题:如果您分发已填写的模板,只需执行所有这些操作,然后将结果保存为 XLSX 文件,这样做将转储宏,因此客户将不会拥有许多人不喜欢的宏工作簿,也不会看到您更聪明地工作,而不是更努力地工作并试图降低您的费率! 假设您对宏文件没有问题,但如果您有,您可以将宏保存到您的个人工作簿,这样它就始终可用,但不在您的模板中。
另外,如果您打开宏编辑器,您就可以看到它是如何发挥魔力的,并看到您可以多么轻松地为获取VLOOKUP()
公式的新单元格插入行,或者删除不再获取公式的单元格的行。
最后,为了真正确保宏的前瞻性,请选择包含公式的单元格VLOOKUP()
,然后启动宏录制器,如上所述,但您的第一步是复制该单元格(可能只是使用Ctrl-C
),第二步是突出F5
显示公式的空白单元格,然后Paste|Special|Formula
突出显示单元格。然后您开始循环F2
,,,并遍历单元格。这样,整个事情就为您完成了。就我个人而言……我是一个复古的人Ctrl-Shift-Home
,我更喜欢手动完成简单的第一部分,然后让宏完成其余部分,但没有人应该这样生活,对吗?F9
Enter
所以……解决方法仍然使用宏,但您不必自己执行 VBA,所以我甚至在那里调用它。您可以根据需要在模板中使用宏,也可以不使用,无论如何,不要将涉及它的任何内容传递给客户端,所以我在那里称之为胜利。最后,无论采用上述哪种方法(只是在最后获取值或让它完成整个工作步骤),您都不是一点一点地做,所以这也是胜利。
(但如果您不介意 VBA,我想这一切都可以在 3-4 行内完成,因为书面 VBA 可以使用比宏记录器能够冒险的更有效的命令。)