Table of contents
在这篇文章中,我们将说明如何 插入 数据 变成一个 ǞǞǞ 桌子 使用 VBA 编码 在Excel内置属性和方法的帮助下,我们可以轻松实现向表格中添加或覆盖数据的功能。 让我们深入到例子中去,清楚地了解这些方法以及VBA代码。
下载实践工作手册
下载这本练习手册,在阅读本文时进行练习。
将数据插入表.xlsm在Excel中使用VBA将数据插入表格的4个例子
比方说,我们有一个 销售清单 一个商店的订单日期、产品名称、数量、单价和总价等细节。
如何在Excel中创建一个表格
拟 变成 的 数据集 变成一个 Excel表格 做到以下几点
- 选择 的 整个数据集 .
- 进展 到 插入标签 从 Excel功能区 .
- 点击 关于 表 选择。
- 最后,点击 确定按钮 在 创建表窗口。
- 我们已经成功地 皈依 的 数据集 变成一个 Excel表格 .
要在Excel表格中插入数据,我们将使用几个 VBA函数 和 财产 在我们的 编码 下一节介绍了如何 开放 和 写代码 在 Visual Basic编辑器。
在Visual Basic编辑器中编写代码
遵循 步骤 至 开放 的 Visual Basic编辑器 并在那里写一些代码。
- 转到 开发商 的选项卡上的 Excel功能区 .
- 点击 的 Visual Basic选项。
- 在 Visual Basic for Applications 窗口,点击 插入下拉菜单 至 选择 的 新模块
现在,一个 新模块 是 开幕 ,在那里写一些代码,然后按 F5 至 运行。
1. 在Excel中使用VBA在表格的最后一行插入数据
在这个例子中,我们将使用一个 VBA 编码为 增加 a 新行 在 底部 的。 桌子 然后 插入数据 在我们的表格中,我们有 4行 的 数据 要添加 第5个 , 拷贝 和 粘贴 将以下代码输入Visual Basic编辑器。
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add() With addedRow .Range(1) = "1/1/2022" .Range(2) = "Apple" .Range(3) = 5 .Range(4) = 1.77 End With End Sub
按F5键 至 运行 的 代码。
我们已经 插入式的 a 新行 的 数据 在 底部 的。 现有表格 .
代码解释。
- 在我们的代码中,我们使用了 ListObjects对象 掌握Excel的VBA技术 抓住 的 桌子 与其 名称 欲了解更多信息。 每个 的。 列表对象 对象是一个 桌子 关于 工作表 要获得表的名称。 点击 关于 桌子 >>。 点击 关于 表设计标签 在 Excel功能区。
- 然后,我们用 列表行 . 添加方法 来添加一个 新行 在 桌子 .这 方法 需要 两个论点 : 职务 和 总是插入 .
通过输入一个 整数 ,我们可以指定 相对位置 的。 新增加的行 在 桌子 在这个例子中,我们 留白 的 位置论证 ,结果是,一个 新行 已被 额外的 在 底部 的。 桌子 .
- 最后,我们将数据设置在 每个 的。 细胞 的新 添加行 在这种情况下,数据是 .Range(1) = "1/1/2022" 作为 OrderDate, .Range(2) = "Apple" 作为 产品,.Range(3)=5 作为 数量,.范围(4) = 1.77 作为 单位价格。
阅读更多。 Excel表名:你需要知道的一切
2. 运行VBA代码,在Excel中的特定表格行插入数据
在这个插图中,我们要做的是 添加一行数据 在一个 相对于表的特定行 在这种情况下,我们只需要 指定 的 位置论证 的。 ListRows.Add方法 比方说,我们想在我们的代码中使用 添加销售数据 为 橙色 详细内容见 第3行相对 到 现有表格 对于这种情况的发生。 拷贝 和 粘贴 下面的 编码 进入可视化代码编辑器。
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add(3) With addedRow .Range(1) = "1/1/2022" .Range(2) = "Orange" .Range(3) = 3 .Range(4) = 2.14 End With End Sub
通过运行代码 按F5插入的 的 销售数据 橙子的故事 相对于表格的第三行 .
阅读更多。 表中每一行的Excel VBA代码(添加、覆盖、删除等)。
类似读物
- 数据透视表中的计算字段总和除以计数
- 如何在Excel中说明相对频率分布
- [修复]无法在数据透视表中对日期进行分组:4种可能的解决方案
- 如何在Excel中计算百分比频率分布(2种方法)
- 数据透视表不刷新(5个问题& 解决方案)
3. 在Excel中使用VBA将数据插入和覆盖到一个表中
这里我们将说明如何 覆盖 的 现有数据 在一个 表而不是 的 插入 a 新行 的 数据 要做到这一点,我们需要使用 ListObject.ListRows属性 属于Excel的 而不是 的。 ListRows.Add属性 我们用 早期 ...... ListObject.ListRows属性 也采取 行数 ( 整数 价值 )作为其 争论 比方说,我们想 变化 的 单位价格 的。 橙色 从2.14到2.35 我们 插入式的 在 以前的例子 . 拷贝 和 粘贴 在visual basic编辑器中输入下面的代码。
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows(3) With addedRow .Range(1) = "1/1/2022" .Range(2) = "Orange" .Range(3) = 3 .Range(4) = 2.35 End With End Sub
在我们的代码中。 我们 设置 的 争论 为 ListObject.ListRows属性 作为 3 其中 数据 为 橙色 属于 .运行 的 编码 通过按 F5 并看到 差异 .
该代码有 改变了 只有 单位价格 的。 数据 在 第3行相对 到 桌子 .
阅读更多。 如何从Excel表中插入或删除行和列
4. 运行VBA代码,根据用户输入将数据插入Excel表格中
在这个例子中,我们要做的是 插入 的 表名 和 销售详情 的一个 产品 作为 用户输入 而不是 硬编码 它在 每次的VBA代码 请按照下面的指示来完成这一工作。
- 拷贝 和 粘贴 将以下代码输入视觉代码编辑器。
Sub InsertDataIntoTable() Dim tableName As ListObject Dim A, B, C, D, tName As String tName = Application.InputBox(Prompt:="表的名称: " , Type:=2) A = Application.InputBox(Prompt:="订购日期: " , Type:=2) B = Application.InputBox(Prompt:="产品名称: " , Type:=2) C = Application.InputBox(Prompt:="数量: " , Type:=2) D = Application.InputBox(Prompt:="单位价格: " 。Type:=2) Set tableName = ActiveSheet.ListObjects(tName) Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add() With addedRow .Range(1) = A .Range(2) = B .Range(3) = C .Range(4) = D End With End Sub
- 新闻 F5 至 运行 的代码。
- 把 的 名称 的。 桌子 在 输入框 ( 表1 在这个例子中是这样的),然后点击 好的。
- 然后把 订购日期,产品名称,数量。 和 单位价格 在 输入框 那 依次出现 在这个例子中,我们使用的值是 1/1/2022, Orange, 3, 和 35.
- 因此,我们已经有了一个 新行 与 插入的数据 在 底部 的。 桌子 .
阅读更多。 Excel表的格式化技巧--改变表的外观
笔记
当我们 额外的 a 新行 与 数据 使用VBA代码, 格式 ,以及 配方 得到 携带的 到 自动生成新行 在我们的例子中, 总价 栏目 产出 的 产品 的列 数量 ,以及 单位价格 .我们只是 只插入了 的 数量 和 单位价格值 ǞǞǞ 新行 是 插入式的 与 产品 这些 两种价值 在 总价一栏。
总结
现在,我们知道了如何使用VBA代码向Excel表中插入数据。 希望它能帮助你更自信地使用这些方法。 有任何问题或建议,不要忘记把它们放在下面的评论框中。