我对VBA /编码非常陌生,所以我需要一些帮助,所以很可能会在接下来的几周内在这里发布。在过去一周左右的时间里,我一直在尽可能多地教自己,我决定开始一个项目。
我需要选择并复制一个数据表,但问题是每天数据变化大小的表格,因此我无法设置特定范围。我使用的代码就是这个,但它并没有选择整个表格。
Workbooks.open "filepath\filename.xls"
Workbooks ("filename.xls").Activate
Range ("b8").Select
Range (Selection, Selection.end(xlDown)).Select
Range (Selection, Selection.end(xlToRight)).Select
附图是表格,第一个包含数据的单元格是b8(目标SLA&类别),我希望它向下复制到图像的右下角。正如我所说,表格每天都会改变大小,因此我无法设定范围。 Table Data
答案 0 :(得分:0)
您可以选择表格而不是一系列单元格(将“Table1”更改为您的表名称)。
ActiveSheet.ListObjects("Table1").Range.Select
答案 1 :(得分:0)
鉴于您的表格的总体设计没有变化(即第一次观察总是在单元格B8
中),您可以使用
Sub SelectData()
Dim rngData As Range
Set rngData = Worksheets("Table1").UsedRange
rngData.Offset(7, 1).Resize(rngData.Rows.Count - 7, rngData.Columns.Count - 1).Select
End Sub
如果可以进行更改,以下内容应该非常强大:
Sub SelectData()
Dim rngData As Range
Dim intRow As Integer
Dim intColumn As Integer
intRow = Range("Table1!FirstDataPoint").Row
intColumn = Range("Table1!FirstDataPoint").Column
Set rngData = Worksheets("Table1").UsedRange
rngData.Offset(intRow - 1, intColumn - 1).Resize(rngData.Rows.Count - intRow + 1, rngData.Columns.Count - intColumn + 1).Select
End Sub
要应用此功能,您必须在案例单元格B8
(我使用名称“FirstDataPoint”)中命名左上角的数据点。当您在此单元格的左侧或上方插入行或列时,代码仍然有效。