vba - 调整命名范围 VBA

标签 vba range named

VBA Excel 2016

如果执行某些代码后该范围的列数较少,我将尝试动态调整该范围的大小。引用了 MS 文件和各种在线示例,但没有成功。 https://msdn.microsoft.com/en-us/library/office/ff193274.aspx

只有执行“testRange.Resize Range("A1:G1")”之类的操作,我才能实现正确的调整大小。但是我正在寻找类似以下内容的内容:

Sub Test_Range()

  Dim Test As Worksheet
  Set Test = Worksheets("test")

  Dim testTable As Range
  Set testTable = Test.Range("testTable[]")

  Dim testTableWidth, testNumbersWidth As Integer
  Set testTableWidth = testTable.Columns.Count

  'Some code
  'testNumbersWith is defined here

  If testNumbersWidth < testTableWidth Then
    testTable.Resize(, testNumbersWidth)
  End If

End Sub

最佳答案

如果“命名范围”是“普通”命名范围或“表”(ListObject) 范围,则调整“命名范围”大小的方法是不同的。您的标题指的是第一种情况,但从您的代码看来您正在使用表格。

对于命名范围的情况,您可以像这样更改范围(即更改列数):

With ThisWorkbook.Names.Item("testTable")
    .RefersTo = .RefersToRange.Resize(, newColumnsCount)
End With

对于表 (ListObject) 的情况,这似乎是您的情况,您可以像这样更改列数:

  Dim testTable As ListObject             ' <-- Declare as ListObject
  Set testTable = Test.ListObjects("testTable")
  ' Or Set testTable = Test.Range("testTable")

  'Some code
  ' ....

   testTable.Resize testTable.Range.Resize(, newColumnsCount) ' <-- resize number of cols

关于vba - 调整命名范围 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132952/

相关文章:

Excel - 导出为 csv 并保存到另一个位置

excel - 用作字典中的键时范围的奇怪行为

c# - 可以将名为 Tuple 的 C# 用作 MVC 页面模型类型吗?

java - 扩展@Named @SessionScoped bean

VBA Outlook Mail.显示,记录何时/如果手动发送

excel - 在 Microsoft Office 中预填充调色板颜色?

Excel VBA - 选择动态单元格区域

JavaScript 数组 : get "range" of items

javascript - 在 JavaScript 中使用递归获取范围数

r - 从两个向量(名称、值)创建命名列表