Excel VBA从范围中创建表格(6个例子)

  • Share This
Hugh West

在与 微软Excel 我们可以利用检查大量的数据。 而且,将这些数据范围转化为表格是最大的选择之一。 Excel表格允许我们迅速对数据进行排序和过滤,添加新的记录,并立即更新图表和PivotTables。 Excel VBA 在这篇文章中,我们将看到一些例子。 Excel VBA 来从范围中创建一个表。

下载实践工作手册

你可以下载工作手册,用它们进行练习。

从范围创建表.xlsm

Excel VBA从范围中创建表格的6个例子

在Excel的菜单版中,表格最初是以列表的形式出现的,但在Ribbon的变体中,这些表格的功能越来越多。 将数据范围转换为表格可以扩大功能,使你的工作更加快速和方便。 将该范围转换为表格 使用 VBA 是比使用丝带最简单的方法。

假设,我们有一个简单的数据集,在列中包含一些项目 B ,这些项目的数量在列 C 栏中,每个项目的总销售额 D 现在,我们要将数据范围转换为表格。 让我们展示不同的例子和逐步说明,以从范围创建一个表格 B4:D9 用Excel VBA。

使用 ListObjects.Add Spreadsheet对象有一个特点,就是可以将一个范围变成一个Excel表格。 列表对象 . 列表对象 有一种技术叫做 添加 的标准。 .Add 详见下文。

expression .Add(SourceType, Source, LinkSource, HasHeaders, Destination)

并且,使用SourceType xlSrcRange .

1.用Excel VBA从范围中生成表格

Excel VBA 要使用这些代码,用户可以很容易地从功能区使用作为excel菜单的代码。 VBA 代码,从范围中生成一个表,让我们按照程序往下看。

步骤。

  • 首先,到 开发商 选项卡。
  • 其次,从 编码 类别,点击 视觉基础 以打开 Visual Basic编辑器 或者按 Alt + F11 以打开 Visual Basic编辑器 .
  • 与其这样做,你可以直接在你的工作表上点击右键,然后转到 查看代码 这也将带你到 Visual Basic编辑器 .

  • 这将出现在 Visual Basic编辑器 我们在这里编写代码,从范围中创建一个表。
  • 第三,点击 模块 插入 下拉菜单栏。

  • 这将创建一个 模块 在你的工作簿中。
  • 并且,复制并粘贴 VBA 代码如下所示。

VBA代码。

 Sub Create_Table() Sheet1.ListObjects.Add(xlSrcRange, Range("B4:D9"), , xlYes).Name = "Table1" End Sub 
  • 之后,通过点击运行代码。 擦肩而过 按钮或按键盘快捷键 F5 .

你不需要改变代码。 你所能做的只是根据你的要求改变范围而已。

  • 最后,按照步骤,将从范围中创建一个表 B4:D9 .

VBA代码解释

 Sub Create_Table() 

是代码的一部分,用于处理代码中的工作,但不会返回任何值。 它也被称为子过程。 因此我们将我们的过程命名为 Create_Table() .

 Sheet1.ListObjects.Add(xlSrcRange, Range("B4:D9"), , xlYes).Name = "Table1" 

这是主要的代码行,通过它将范围转换为表格。 我们已经知道 ListObjects.Add 将一个范围变成一个Excel表格。 而我们使用 xlSrcRange 作为一个源类型。 同时,我们声明我们的范围 范围("B4:D9") 最后,将我们的表命名为 表1 .

 结束子程序 

这将结束该程序。

阅读更多。 如何更新透视表范围(5种合适的方法)

2.使用Excel VBA从范围中构建表格

让我们看看另一个例子,用Excel VBA从范围中构建一个表格。

步骤。

  • 首先,去到 发展ope 从功能区中选择 "r "选项卡。
  • 第二,点击 视觉基础 以打开 Visual Basic编辑器 .
  • 另一种打开方式是 Visual Basic编辑器 是简单地按下 Alt + F11 .
  • 或者,在工作表上点击右键,然后选择 查看代码 .
  • 接下来,请到 插入 并选择 模块 从下拉菜单中选择。
  • 而且,这将打开Visual Basic窗口。
  • 之后,复制并粘贴 VBA代码 下面。

VBA代码。

 Sub Generate_Table() Dim tb2 As Range Dim wsht As Worksheet Set tb2 = Range("B4").CurrentRegion Set wsht = ActiveSheet ws.ListObjects.Add(SourceType:=xlSrcRange, Source:=tb2).Name = "Table2" End Sub 
  • 此外,按 F5键 或点击 运行子 按钮来运行该代码。

  • 而且,你将得到如图所示的结果 方法一 .

VBA代码解释

 Dim tb2 As Range Dim wsht As Worksheet 

ǞǞǞ DIM 声明中 VBA 指的是" 宣布。 ",它必须被用来声明一个变量。 因此,我们声明我们的范围为 tb2 和工作表,以 ws .

 Set tb2 = Range("B4").CurrentRegion Set wsht = ActiveSheet 

VBA设置只是让我们避免在运行代码时反复输入我们需要挑选的范围。 因此,我们将我们的范围设置为当前区域,将我们的工作表设置为活动工作表。

 wsht.ListObjects.Add(SourceType:=xlSrcRange, Source:=tb2).Name = "Table2" 

通过这行代码,我们从范围中创建了表,并命名为我们的表 表2 .

阅读更多。 如何用VBA使用Excel表格(9种可能的方法)

3.在Excel中用VBA从范围中创建表格

让我们来看看另一个利用Excel VBA从一个范围创建表格的例子。

步骤。

  • 首先,选择你想转换为表格的整个范围。
  • 第二,点击 开发商 选项卡上。
  • 第三,启动 Visual Basic编辑器 通过点击 视觉基础 .
  • 或者,你可以访问 Visual Basic编辑器 通过按 Alt + F11 .
  • 或者。 右键点击 在工作表上,选择 查看代码 从菜单中选择。
  • 接下来,选择 模块 下的下拉框中选择 插入 .
  • 然后会出现Visual Basic窗口。
  • 把代码写在那里。

VBA代码。

 Sub Create_Table3() Dim r As Range Dim wsht As Worksheet Dim tb3 As ListObject Set r = Selection.CurrentRegion Set wsht = ActiveSheet Set tb3 = wsht.ListObjects.Add(SourceType:=xlSrcRange, Source:=r, XlListObjecthasheaders:=x1Yes) End Sub 
  • 最后,按 F5键 来运行该代码。

  • 而且,这将从数据范围中创建一个表,就像我们在文件中得到的那样 方法一 .

阅读更多。 如何在Excel中制作一个表格(带自定义功能)

类似读物

  • 数据透视表中的计算字段总和除以计数
  • 如何在Excel中说明相对频率分布
  • Excel透视表按周分组(3个合适的例子)
  • [修复]无法在数据透视表中对日期进行分组:4种可能的解决方案
  • 如何在Excel中制作一个摊销表(4种方法)

4.应用VBA从范围创建动态表

让我们来看看用Excel VBA从一个区域生成表格的另一种方法。

步骤。

  • 要开始,打开功能区并选择 开发商 选择。
  • 然后,要访问 Visual Basic编辑器 ,点击 视觉基础 .
  • 按压 Alt + F11 也将调出 Visual Basic编辑器 .
  • 或者说。 右键点击 的工作表,并选择 查看代码 从出现的菜单中选择。
  • 现在,从 插入 下拉选项,选择 模块 .
  • 然后复制并粘贴 VBA 下面的代码。

VBA代码。

 Sub Create_Dynamic_Table1() Dim tbOb As ListObject Dim TblRng As Range With Sheets("Example4") lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft) .Column Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) Set tbOb = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) tbOb.Name = "DynamicTable1" tbOb.TableStyle = "TableStyleMedium14" End With 结束子 
  • 运行代码,按 F5 钥匙。

  • 如图所示,在 方法一 的图示,桌子将从范围内建立。

VBA代码解释

 Sub Create_Dynamic_Table1() 

这一行表示子程序的名称。

 Dim tbOb As ListObject Dim TblRng As Range 

这两行用于变量声明。

 与Sheets("Example4") 

ǞǞǞ 附声明 允许你在一个单一的对象上做一连串的语句,而不需要重新验证对象的名称。 所以,我们把 声明 与工作表的名称。

 lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft) .Column 

这些都是为了分别找到最后一行和最后一列。

 Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) 

范围来创建表格。

 Set tbOb = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) 

在上述指定的范围内创建一个表格。

 tbOb.Name = "DynamicTable1" 

指定表名

 tbOb.TableStyle = "TableStyleMedium14" 

指定表格样式。

阅读更多。 在Excel中使用快捷方式创建表格(8种方法)

5.根据范围制作动态表

现在,看看另一种Excel VBA方法,从一个范围创建一个表格。

步骤。

  • 要开始,打开功能区,选择 开发商 从下拉菜单中选择。
  • 然后选择 视觉基础 以打开 Visual Basic编辑器 .
  • ǞǞǞ Visual Basic编辑器 也可以通过按 Alt + F11 .
  • 或者,你可以 右键点击 的纸张,并选择 查看代码 从弹出的菜单中选择。
  • 之后,选择 模块 插入 下拉菜单。
  • 然后复制并粘贴以下VBA代码。

VBA代码。

 Sub Create_Dynamic_Table2() Dim tbObj As ListObject Dim TblRng As Range With Sheets("Example5") .Range("A1").Select Selection.CurrentRegion.Select Set tbObj = .ListObjects.Add(xlSrcRange, Selection, , xlYes) TbObj.Name = "DynamicTable2" tbObj.TableStyle = "TableStyleMedium15" End With END Sub 
  • 最后,运行代码,按 F5 在你的键盘上,你可以在你的工作表中看到这个结果。

  • 并且,正如在 方法一 的说明,该表将由范围构建。

阅读更多。 如何让Excel表格看起来更漂亮(8个有效技巧)

6.使用Excel VBA建立动态表格

让我们来探索另一种Excel VBA方法,即从一个范围中构建一个表格。

步骤。

  • 在开始的时候,去到 开发商 标签> 视觉基础 > 插入 > 模块 .
  • 或者。 右键单击 在工作表上,将打开一个窗口。 从那里到 查看代码 .
  • 而且,这将带你到 Visual Basic编辑器 字段,在这里我们可以编写VBA宏。
  • 另一方面,按 Alt + F11 也将打开 Visual Basic编辑器 .
  • 之后,输入 VBA 代码。

VBA代码。

 Sub Create_Dynamic_Table3() Dim tableObj As ListObject Dim TblRng As Range With Sheets("Example6") lLastRow = .UsedRange.Rows.Count lLastColumn = .UsedRange.Columns.Count Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) Set tableObj = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) tableObj.Name = "DynamicTable3" tableObj.TableStyle = "TableStyleMedium16" End With 结束Sub 
  • 然后,运行代码,看结果,按一下 F5键 .

  • 而且,表格将从范围中创建,如图所示。 方法一 .

阅读更多。 如何在Excel中创建一个有数据的表格(5种方法)

总结

上述方法将帮助你在Excel中从范围中创建一个表格。 希望这能帮助你!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章,在 淘宝网 博客!

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.