在Microsoft Excel中复制列宽的6种方法

在Microsoft Excel中复制列宽的6种方法

您是否发现重新调整从 Excel 工作表或表格中复制的数据的列宽很困难?您是否知道在复制单元格或单元格区域时也可以复制 Excel 中的列宽?

Excel 是一款功能强大的工具,可简化您的数据结构和组织任务。有时,即使是最简单的操作也会让您头疼。其中一个常见的挑战是复制列宽。

如果您曾经花费宝贵的时间手动调整列宽以匹配不同的工作表或工作簿,那么现在就不必再担心了!在本文中,我们将揭开在 Excel 中轻松复制列宽的秘诀。

了解实用的技巧、快捷方式和技巧,以确保列宽一致,从而节省您宝贵的时间并避免烦恼。无论您是初学者还是经验丰富的 Excel 用户,本指南都将帮助您轻松高效地攻克这一常见的 Excel 难题。

推荐:什么是Excel兼容模式

Excel 中的复制列宽是什么?

Excel 中的复制列宽是指复制一列的宽度测量值并将其应用到另一列的过程。列宽决定了分配给特定列中显示数据的空间量。

处理大型数据集或多个工作表时,手动调整列宽以匹配可能非常耗时。通过复制列宽,您可以确保各列的一致性和统一性,从而增强 Excel 电子表格的视觉吸引力和可读性。

这种技术消除了重复调整大小的需要并节省了宝贵的时间,使您能够专注于有效地分析和处理数据。

例如,如果您从以下数据集复制 A1:C7E1:G7,您将获得复制数据的以下视图:

在Microsoft Excel中复制列宽的6种方法
在Microsoft Excel中复制列宽的6种方法
复制 Excel 数据但列宽不匹配

复制的内容不可见。因此,您需要通过双击每个列标题的边缘来手动调整列宽。或者您也可以拖动列宽。对于三列来说,这看起来还不错,但当有数百列时,这是一项艰巨的任务。

在这种情况下,您可以利用本文介绍的技巧根据源数据集或表自动匹配目标单元格范围或工作表中的列宽。这是一个例子:

复制后与 Excel 中的列宽匹配
复制后与 Excel 中的列宽匹配

通过复制整列来复制列宽

如果您需要快速将列宽从源复制到目标,请将整个列复制到目标工作表或同一工作表上的列。操作方法如下:

选择要复制的源数据
选择要复制的源数据
  1. 单击第一个列标题 (A) 源数据。
  2. 转移 钥匙。
  3. 单击最后一列标题 (C) 源数据。
  4. 右键点击 并选择 复制 在上下文菜单上。
如何在 Excel 中复制列宽
如何在 Excel 中复制列宽
  1. 选择第一个列标题 (E) 目的地。
  2. Ctrl + 复制数据以及列宽。

使用格式刷工具复制 Excel 中的列宽

在目标列中应用源列的列宽的另一种简单方法是使用 格式刷 工具。您也可以按照以下步骤操作:

使用格式刷工具复制 Excel 中的列标题
使用格式刷工具复制 Excel 中的列标题
  1. 选择列标题 (A) 源的。
  2. 点击 格式刷 工具里面 剪贴板 块的 标签。
  3. 现在,单击列标题 (E) 目标列。
  4. Excel 将复制列宽并将其应用于目标列。

使用选择性粘贴在 Excel 中复制列宽

特殊粘贴 Excel 工具提供了多种复制和粘贴数据的模式。其中一种模式是将数据与源列宽一起复制。以下是学习此方法的步骤:

在 Excel 中使用选择性粘贴
在 Excel 中使用选择性粘贴
  1. 选择要复制到另一个工作表的数据集或表的单元格范围或同一工作表的单元格范围。
  2. Ctrl + C 键将数据复制到剪贴板。
  3. 突出显示目标单元格区域或工作表的第一个单元格。
  4. 右键点击 并将鼠标光标悬停在 特殊粘贴 选项。
  5. 在下面 粘贴 块,点击第六个粘贴选项,上面写着 保持源列宽
使用选择性粘贴复制 Excel 中的列宽
使用选择性粘贴复制 Excel 中的列宽
  1. 您应该获得目标单元格范围内的复制数据以及源列宽。

推荐:如何更改TikTok上的语言

使用快捷方式复制 Excel 中的列宽

假设您已将数据复制到目标。现在,您还想应用源列宽。在这种情况下,您可以使用一系列键盘键,而不是单击 Excel 用户界面。操作方法如下:

使用快捷方式复制列宽
使用快捷方式复制列宽
  1. 选择源数据的单元格区域并按 Ctrl + C 复制它。
  2. 现在,突出显示目标单元格地址的第一个单元格,然后按给定的顺序按下以下键:

Alt > > 年代 > 西 > 进入

  1. Excel 将通过从源数据集复制列宽来格式化目标数据集。

使用 Excel VBA 复制 Excel 中的列宽

到目前为止提到的方法虽然可以自动复制列宽,但仍需要按几个键。因此,如果您想将源数据集的列宽应用到目标工作表或单元格范围,您必须记住这些键。

此外,当您使用 Excel VBA 来自动执行其余数据组织过程时,您无法真正将其集成为自动化工作流程。在这种情况下,您需要一个 VBA 脚本来将源列宽导出到您正在复制数据的新目标。

您可以使用以下两个 VBA 脚本:

只需复制列宽

您可以使用此代码将源列宽度应用于目标列。例如,您从 A1:C7E1:G7。现在,您想将 A 列的列宽仅应用于 E 列,而不应用于所有其他列。在这种情况下,请按照以下步骤操作并使用以下 VBA 脚本:

创建 VBA 脚本以复制 Excel 中的列宽
创建 VBA 脚本以复制 Excel 中的列宽
  1. Alt + F11 提出 Excel VBA 编辑器 在您正在处理的工作表上。
  2. 现在,点击 插入 按钮 VBA 编辑器 工具栏并选择 模块
  3. 这将创建一个空白模块,您需要在其中复制并粘贴以下 VBA 脚本:
Sub CopyColumnWidth()
    Dim sourceColumn As Range
    Dim targetColumn As Range

    ' Set the source column
    Set sourceColumn = Range("A:A") ' Replace "A:A" with the desired source column

    ' Set the target column
    Set targetColumn = Range("E:E") ' Replace "E:E" with the desired target column

    ' Copy the column width
    targetColumn.ColumnWidth = sourceColumn.ColumnWidth
End Sub
  1. 在上面的 VBA 代码中,如果源单元格范围和目标单元格范围与本教程中显示的数据不同,请确保自定义以下内容:
    • Range("A:A") 表示源列的列宽,因此请根据您的工作表更改范围。
    • Range("E:E") 是要根据源列调整其宽度的目标列。因此,也请更改此列。
  2. 修改完代码后,点击 节省 按钮并关闭 VBA 编辑器工具。
如何使用 Excel VBA 复制 Excel 中的列宽
如何使用 Excel VBA 复制 Excel 中的列宽
  1. Alt + F8 提出 对话框并选择 复制列宽() 宏。
  2. 点击 跑步 按钮。
  3. Excel 应该自动修复目标列的列宽。

复制列宽和数据

如果要自动将数据集从一个单元格区域复制到另一个单元格区域并保留源数据区域的列宽,请尝试使用此 VBA 代码:

Sub CopyDataWithColumnWidths()
    Dim sourceRange As Range
    Dim targetRange As Range
    Dim sourceColumns As Range
    Dim targetColumns As Range
    Dim i As Long

    ' Set the source range
    Set sourceRange = Range("A1:C7")

    ' Set the target range
    Set targetRange = Range("E1:G7")

    ' Copy the data
    sourceRange.Copy Destination:=targetRange

    ' Set the source columns
    Set sourceColumns = Range("A:C") ' Replace "A:C" with the desired source columns

    ' Set the target columns
    Set targetColumns = Range("E:G") ' Replace "E:G" with the desired target columns

    ' Copy the column widths
    For i = 1 To sourceColumns.Columns.Count
        targetColumns.Columns(i).ColumnWidth = sourceColumns.Columns(i).ColumnWidth
    Next i
End Sub

上述代码将自动复制单元格范围内可用的数据集 A1:C7E1:G7。此外,代码会将源列的列宽复制到目标列。

您要复制的数据集可能不在上述单元格范围内。此外,您可能希望将数据复制到与上述单元格范围不同的单元格范围内。

因此,请根据您自己的 Excel 工作表和要求修改以下代码元素:

  • Range("A1:C7") 应该是您要复制的数据的地址范围。
  • Range("E1:G7") 是您要复制源数据的位置。因此,也请修改此位置。
  • Range("A:C") 应为源列的范围。如果您要从 B10:D20,列范围应为 Range("B:D")
  • Range("E:G") 是目标单元格区域的列区域。因此,如果您不在目标单元格区域之间复制数据,则也必须修改此值。 E 栏G

代码准备好后,按照前面提到的方法创建一个模块并将代码粘贴到那里。然后保存脚本并从 对话框。

使用 Office 脚本复制 Excel 中的列宽

由于您无法使用 Excel VBA 方法在 Excel 网页应用程序中自动执行复制列宽任务,因此我介绍了另一种基于 办公室脚本

Office 脚本可让您自动执行 Excel 桌面和 Web 应用程序上的各种操作,并且提供比 Excel VBA 更好的选项。

但是,只有当您获得 Microsoft 365 商业标准版和更好的订阅时,此功能才可用。如果您在 Excel 桌面或 Web 应用程序上看到“自动化”选项卡,则可以使用 Office 脚本。

以下步骤将帮助您利用 Excel 功能自动完成当前挑战:

创建和编辑 Office 脚本代码编辑器.png
创建和编辑 Office 脚本代码编辑器.png
  1. 点击 自动化 Excel 桌面或 Web 应用程序上的选项卡。
  2. 选择 新脚本 选项里面 脚本工具 堵塞。
  3. 办公室脚本 代码编辑器 将出现在右侧。
  4. 单击代码编辑器面板并点击 Ctrl + A 选择所有代码。
  5. 删除 键来删除现有的代码。
运行办公脚本
运行办公脚本
  1. 现在,复制并粘贴以下代码到 代码编辑器 控制板:
function main(workbook: ExcelScript.Workbook) {
	let selectedSheet = workbook.getActiveWorksheet();
	// Paste to range D1 on selectedSheet from range A1:B7 on selectedSheet
	selectedSheet.getRange("D1").copyFrom(selectedSheet.getRange("A1:B7"), ExcelScript.RangeCopyType.all, false, false);
	// Paste to range D:E on selectedSheet from range A:B on selectedSheet
	selectedSheet.getRange("D:E").copyFrom(selectedSheet.getRange("A:B"), ExcelScript.RangeCopyType.formats, false, false);
}
  1. 点击 保存脚本 按钮以便将来重复使用该代码。
  2. 跑步 按钮来执行代码。
使用 Office 脚本复制列宽
使用 Office 脚本复制列宽

Excel 将自动复制单元格区域的值 A1:B7D1:E7 并应用列宽 列AD 列

在上面的代码中,如果您当前的工作表数据不是按照上面的例子来组织的,那么您需要修改以下代码元素:

  • range D1:目标第一列的第一个单元格
  • range A1:B7:源数据的范围和列宽
  • getRange("D1")D1 到任意单元格地址,该地址将是目的地的第一个单元格
  • getRange("A1:B7")A1:B7 表示源数据和列宽的任意单元格范围
  • getRange("D:E"):将应用源列宽度的目标列;相应更改
  • getRange("A:B"):复制源列的列宽;根据你的数据集进行更改

结论

在 Excel 中构建和组织数据不应该很复杂或耗时。您需要做的就是了解一些技巧,以便轻松地重新构建复制的数据,如上文所述。

在这里,您学习了几种将列宽从源工作表或 Excel 表格。

使用适合您需求的方法,并在下面发表评论,分享您在 Excel 中使用上述技巧的经验。如果您还知道更好的方法来实现相同的目的,请随时发表评论

推荐:3种BIOS设置可防止PC游戏卡顿


发表评论