Excel / VBA:粘贴数据后自动调整列宽
Posted
技术标签:
【中文标题】Excel / VBA:粘贴数据后自动调整列宽【英文标题】:Excel / VBA: auto-adjust column width after pasting data 【发布时间】:2014-07-26 08:42:35 【问题描述】:我有一个保存为模板的空白 Excel 表格,我将剪贴板中的数据(来自网站)复制到该模板中。
在粘贴数据(文本)后,有没有办法使用 VBA 自动调整每列的宽度?
编辑:我粘贴的数据将始终从 A1 开始插入,并且始终填充相同数量的列。
【问题讨论】:
是的,你可以。尝试在录制宏的同时录制宏,这将为您提供示例。 谢谢。刚刚也想通了。 :) 如何触发宏以便在我粘贴数据后运行? 【参考方案1】:您可以使用AutoFit
:
Columns("A:B").EntireColumn.AutoFit
【讨论】:
谢谢!是的,这也是我刚刚看到的。 :) 如何触发宏以便在我粘贴数据后运行? 是的,没问题,但我的意思是,有没有办法在粘贴后使用 onchange 或 onpaste 事件之类的东西自动运行宏? @user2571510 你可以制作一个按钮,如果你按下按钮,宏就会启动。这是一个示例:mrexcel.com/tip068.shtml 这就是您需要的吗? :) 谢谢!我知道如何添加一个按钮,但我正在寻找在表格内容更改时自动启动宏的东西,这是在我粘贴数据之后。 没关系。我想通了 - 这可以通过 Worksheet_Change 事件来完成。【参考方案2】:您可以执行以下操作:
Columns("A").Autofit
【讨论】:
比接受的答案更好,因为它不涉及使用(性能扼杀)选择【参考方案3】:您可以使用工作表更改事件来执行此操作,但如果您的工作表在粘贴后以任何方式更改,它会再次运行。除非您尝试隐藏列以专注于数据子集,否则这不是问题,因为它们会不断自动调整。
我建议使用按钮粘贴数据,并将列宽设置作为粘贴命令的一部分。
【讨论】:
欢迎来到 SO @Stephany。你提出了一个好的方法,如果你用一个可行的例子来扩展你的答案,将会对提问者更有帮助。以上是关于Excel / VBA:粘贴数据后自动调整列宽的主要内容,如果未能解决你的问题,请参考以下文章