Excel 2010 VBA范围未从命名表中选择正确的数据
我尝试从命名范围中选择多个列。我用一些变量构建了应该选择的字符串:Excel 2010 VBA范围未从命名表中选择正确的数据,vba,excel,named-ranges,listobject,Vba,Excel,Named Ranges,Listobject,我尝试从命名范围中选择多个列。我用一些变量构建了应该选择的字符串: Dim onecolumn as Integer, lastcolumn as Integer Dim tblTable as ListObject Dim strforrange as String Set tblTable = Sheet1.ListObjects("Table1") onecolumn = 3 lastcolumn = tblTable.Range.Columns.Count strforrange
Dim onecolumn as Integer, lastcolumn as Integer
Dim tblTable as ListObject
Dim strforrange as String
Set tblTable = Sheet1.ListObjects("Table1")
onecolumn = 3
lastcolumn = tblTable.Range.Columns.Count
strforrange = tblTable & "[[#All],[Column" & onecolumn & "]:[Column" & lastcolumn - 1 & "]]"
Range(strforrange).Select
我一步一步地运行代码并检查strforrange变量。即使正确,所选列也与字符串中所述列不同
是否有其他方法获取命名表的范围,或者有人知道解决方案吗?以下内容应该会有所帮助;我已经引用了一个有用的函数,该函数将列号转换为相应的列信用证:answer by@brettdj
Function Col_Letter(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
使用此函数,您只需在列旁边使用DataCodeRange函数来选择所需的范围:
Sub SelectSpecificDataRange
Dim startColumn as Long, lastColumn as Long
Dim tblTable as ListObject
Dim startColumnLetter, lastColumnLetter as String
Set tblTable = Sheet1.ListObjects("Table1")
startColumn = 3
startColumnLetter = Col_Letter(startColumn)
lastColumn = tblTable.Range.Columns.Count
lastColumnLetter = Col_Letter(lastColumn)
tblTable.DataBodyRange.Columns(startColumnLetter & ":" & lastColumnLetter).Select
End Sub
谢谢你的回答,它修好了!在您的代码中有一个小错误:startColumnLetter和lastColumnLetter变量不应该用双引号括起来。很高兴我能提供帮助!哦,是的,我现在就编辑。谢谢