我正在修改旧工作表中的代码以更新它并使其更高效。使用范围(单元格,单元格)的VBA中的范围错误设置范围
我有一个格式数据表的子程序,但我得到一个错误,我不明白为什么我得到一个。我的VBA是有点生疏,但下面的代码应该是工作
Sub FormatPnLDataTable(tableRange As Range)
Dim tempRange As Range, ws As Worksheet
Dim lStartRow As Long, lEndRow As Long, lLastCol As Long
Set ws = Sheets("PandLDataTable")
Application.CutCopyMode = False
lStartRow = tableRange.Row
lEndRow = lStartRow + tableRange.Rows.Count
lLastCol = tableRange.Columns.Count
'format the whole table with border
With tableRange
'format borders
'code removed for brevity
End With
'set range for the top row of table
Set tempRange = ws.Range(Cells(lStartRow, 1), Cells(lStartRow, lLastCol))
的代码犯错在这条线
Set tempRange = ws.Range(Cells(lStartRow, 1), Cells(lStartRow, lLastCol))
但工作表(WS)是有效的,并且变量都有其合适的对于这个特定的实例值 ,lStartRow是1,lEndRow是15和lLastCol是35
尝试完全限定'.Cells'属性,看看是否有帮助。它看起来像:'Set tempRange = ws.Range(ws.Cells(lStartRow,1),ws.Cells(lStartRow,lLastCol))' – user3561813
如果活动工作表与ws不同,它将会出错 –
另请参见: [是个 。在.Cells中定义时需要.Range?](http://stackoverflow.com/questions/36368220/is-the-in-range-necessary-when-defined-by-cells)。 – Jeeped