【发布时间】:2017-06-07 19:47:02
【问题描述】:
我正在构建一个模块以将文本导入 Excel 工作簿。导入后,我想将数据格式化为表格。我遇到的问题是导入永远不会有相同的范围。
我正在使用以下代码,但它会引发错误,运行时错误“424”:需要对象。
Sub ImportRange()
Dim ws As Worksheet
Dim lRow As Long
Dim lCol As Long
Dim rng As Range
Set ws = ThisWorkbook.Worksheets("Import")
lRow = ws.UsedRange.Row - 1 + ws.UsedRange.Rows.Count
lCol = ws.UsedRange.Column - 1 + ws.UsedRange.Columns.Count
Set rng = ws.Cells(lRow, lCol).Address(True, True)
'MsgBox Cells(lRow, lCol).Address(True, True)
End Sub
我已经进行了大量搜索,但我无法找到答案或弄清楚我应该如何做到这一点。
代码中的最终结果将如下所示,范围的开头始终设置为 $A$1:
ws.ListObjects.Add(xlSrcRange, Range("$A$1:$AM$90"), , xlYes).Name = _
"Import"
【问题讨论】:
-
设置范围时不要使用
Address:Set rng = ws.Cells(lRow, lCol)则可以使用msgbox rng.Address(1,1) -
@ScottCraner MsgBox 只是为了验证我在做什么。我需要能够用 Range ("$A$1:RANGE") 替换。
-
应该是
Range("A1",rng) -
您不需要 Range ("$A$1:RANGE")。只需将您的范围直接设置为目标即可。看我的回答。