gpt4 book ai didi

vba - 调整命名范围 VBA

转载 作者:行者123 更新时间:2023-12-05 04:11:14 28 4
gpt4 key购买 nike

VBAExcel 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com