变量tablelength计算我的表中有多少项。我想选择我的整个表格,但它的大小各不相同,因此我的范围必须包含一个变量。我搜索了很多网页并搜索了这个网站(Using variables in Excel range< - 这种方法看起来很有前途,但没有用)。下面是我的代码片段,但包含了相关的所有内容。
Private Sub CommandButton1_Click()
Dim shSource As Worksheet
Dim shDest As Worksheet
Dim tablelength As Integer
Set shDest = ThisWorkbook.Sheets("Sheet2")
'here comes some code that determines the value of tablelength, which is 8 in this case
shDest.Range("L" & "4" & ":" & "M" & tablelength).Select
End Sub
我很感激帮助。
编辑:调试器突出显示shDest.Range代码。
答案 0 :(得分:0)
在这里,试试这个:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
取自http://support.microsoft.com/kb/291308
Cells的第一个参数是行,第二个是列的数字。
所以对你来说它看起来像这样:
shDest.Range(Cells(4, 12), Cells(tablelength, 13)).Select
答案 1 :(得分:0)
如果它是电子表格上的正确表格,而不仅仅是格式化为表格的单元格,您可以直接在代码中引用表格的“实时”大小,而不必跳过所有这些环节。
在您的VBA代码中,
ListObject
ListObject
,然后查找其DataBodyRange.Rows.Count 这应该有效:
Sub MyMacro()
Dim Tabl As ListObject
Set Tabl = Worksheets("Sheet1").ListObjects("Table1")
MsgBox Tabl.DataBodyRange.Rows.Count
End Sub
您还可以设置范围变量以引用“数据”范围。您需要使用以下代码。
Dim Rng As Range
Set Rng = Worksheets("Sheet1").ListObjects("Table1").DataBodyRange
现在Rng.Cell(1,1)或Rng.Range(“A1”)引用数据正文的左上角单元格,依此类推......
答案 2 :(得分:0)
除非你在代码中的其他地方需要tablelength变量,否则你可以尝试使用:
shDest.Range("L4").CurrentRegion.Select
CurrentRegion.Select将选择从“L4”开始的所有单元格,直到它到达空行和列,因此提供的表格被空白单元格包围,无论大小如何都应选择整个表格