excel - vba:从第 3 行选择表以结束 listobject
问题描述
以这种方式为列表对象选择整个工作表
ws.ListObjects.Add(xlSrcRange, Range("$A$1").CurrentRegion, , xlYes).Name = "Cost"
但现在我想要相同的,但从第 3 行开始:
Dim rng As Range
Dim crng As Range
Set crng = ws.Range("$A$1").CurrentRegion
Set rng = ws.Range(ws.Range("A3"), ws.Range(crng.Columns, crng.Rows))
ws.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "Eval"
但这也选择了整个范围。如何选择正确的范围?
解决方案
有两种情况 - 当表格存在于“A3”范围内或那里没有表格时。
- 当表存在时
我已设法A3
使用以下代码从表格末尾选择:
Sub TestMe()
Dim ws As Worksheet
Set ws = Worksheets(1)
Dim myRange As Range
With ws
Set myRange = .Range(.Range("A3"), .Range("A3").End(xlToRight))
Set myRange = .Range(myRange, myRange.End(xlDown))
End With
myRange.Select
Stop
'Uncomment the line below, if there is no table.
'ws.ListObjects.Add(xlSrcRange, myRange, , xlYes).Name = "Eval40"
End Sub
但是,如果您取消注释代码的最后一行,您将看到1004
错误,其中指出“一个表不能与另一个表重叠”,这是有道理的,因为新表Eval40
已命名为旧表的一部分存在。
- 当表不存在时 如果范围内没有现有表,则可以正常工作:
推荐阅读
- python - 从国际象棋导入国际象棋引擎:国际象棋引擎错误
- python - 计算每个组内的元素数
- go - 为什么我不能使用 DefaultClient 访问日历 API?
- python-3.x - Python如何检查字符串是UTC时间戳?
- c# - Razor Pages PageModel 返回 Null 属性
- c# - 系统找不到使用 NUnit3 控制台和 testparam 指定的文件
- r - 测试模块化 R Shiny (golem) 仪表板
- python - 给定一个矩阵 A,以取决于 A 的单射、满射和双射性质的方式返回一个向量 v
- c++ - 将 Visual Studio C++ 游戏发送给不是程序员的朋友
- gem-fury - Gemfury 是否可以防止依赖混淆?