【问题标题】:Adding a new table to Excel using macro/VBA使用宏/VBA 将新表添加到 Excel
【发布时间】:2016-03-04 20:29:28
【问题描述】:

我有一个宏,可以将一个新表插入一个范围,并根据另一个单元格值命名新表:

Select Code  copy to clipboard
Sub sbCreatTable()
Sheet1.ListObjects.Add(xlSrcRange, Range("B1:B3"), , xlYes).Name = Range("a2").Text

但是,我想添加表格的工作表已经有一系列表格,都在 B 行,所以我需要将表格添加到这些表格的末尾,并插入到行的第一个空单元格中B. 我的代码只会在特定范围内插入它。

有人能帮我指出正确的方向吗?

【问题讨论】:

  • 您的意思是“全部在 B”吗?是否要在 B 列中所有表格底部的第二个空白行中添加新表格?
  • 刚看了回复,已经深夜了!对不起。我的意思是它位于同一行(第 2 行)的 B 列的右侧。添加一个表会将其添加到 C2,再次运行它会将一个新表添加到 D2,依此类推。希望这更有意义!

标签: vba excel macros


【解决方案1】:

我已将您的叙述解释为您希望新表从第二个开始立即位于其他表的右侧。我发现最好在结构化 ListObject 表之间保留一个空白列作为“护城河”。

With Sheet1
    With .ListObjects.Add(xlSrcRange, .Cells(2, Columns.Count).End(xlToLeft).Offset(0, 2).Resize(3, 1), , xlYes)
        .Name = .Parent.Range("a2").Text
    End With
End With

如果要删除空白列,请将Range.Offset property 更改为.Offset(0, 1)

【讨论】:

  • 刚看了回复,已经深夜了!对不起。我的意思是它位于同一行(第 2 行)的 B 列的右侧。添加一个表会将其添加到 C2,再次运行它会将另一个表添加到 D2,依此类推。希望这更有意义!
  • 我已将上面的“第一个空白行”调整为“第一个空白列”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2023-01-25
相关资源
最近更新 更多