Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2010 VBA范围未从命名表中选择正确的数据_Vba_Excel_Named Ranges_Listobject - Fatal编程技术网

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变量不应该用双引号括起来。很高兴我能提供帮助!哦,是的,我现在就编辑。谢谢