【问题标题】:Excel / VBA: auto-adjust column width after pasting dataExcel / VBA:粘贴数据后自动调整列宽
【发布时间】:2014-07-26 08:42:35
【问题描述】:

我有一个保存为模板的空白 Excel 表格,我将剪贴板中的数据(来自网站)复制到该模板中。

在粘贴数据(文本)后,有没有办法使用 VBA 自动调整每列的宽度?

编辑:我粘贴的数据将始终从 A1 开始插入,并且始终填充相同数量的列。

【问题讨论】:

  • 是的,你可以。尝试在录制宏的同时录制宏,这将为您提供示例。
  • 谢谢。刚刚也想通了。 :) 如何触发宏以便在我粘贴数据后运行?

标签: excel vba column-width


【解决方案1】:

您可以使用AutoFit

 Columns("A:B").EntireColumn.AutoFit

【讨论】:

  • 谢谢!是的,这也是我刚刚看到的。 :) 如何触发宏以便在我粘贴数据后运行?
  • 是的,没问题,但我的意思是,有没有办法在粘贴后使用 onchange 或 onpaste 事件之类的东西自动运行宏?
  • @user2571510 你可以制作一个按钮,如果你按下按钮,宏就会启动。这是一个示例:mrexcel.com/tip068.shtml 这就是您需要的吗? :)
  • 谢谢!我知道如何添加一个按钮,但我正在寻找在表格内容更改时自动启动宏的东西,这是在我粘贴数据之后。
  • 没关系。我想通了 - 这可以通过 Worksheet_Change 事件来完成。
【解决方案2】:

您可以执行以下操作:

Columns("A").Autofit

【讨论】:

  • 比接受的答案更好,因为它不涉及使用(性能扼杀)选择
【解决方案3】:

您可以使用工作表更改事件来执行此操作,但如果您的工作表在粘贴后以任何方式更改,它会再次运行。除非您尝试隐藏列以专注于数据子集,否则这不是问题,因为它们会不断自动调整。

我建议使用按钮粘贴数据,并将列宽设置作为粘贴命令的一部分。

【讨论】:

  • 欢迎来到 SO @Stephany。你提出了一个好的方法,如果你用一个可行的例子来扩展你的答案,将会对提问者更有帮助。
猜你喜欢
  • 2019-10-25
  • 1970-01-01
  • 2016-01-21
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2013-12-27
  • 1970-01-01
相关资源
最近更新 更多