在Excel VBA中重命名范围

时间:2015-02-05 10:24:19

标签: excel-vba vba excel

我确定这已经完成了,但是我无法弄清楚我的代码出现了什么问题,现在正在抛出一个"应用程序定义或对象"错误,但只有当我从不同工作表上的按钮运行到具有我想要重命名的数据的按钮时。

如果我在选项卡上运行它我希望编辑它可以正常工作

Sub updateDataSheet()
    Dim lastColumn As Integer
    Dim lastRow As Integer
    lastColumn = (Sheets("Data").Cells(1, columns.count).End(xlToLeft).Column)
    lastRow = Sheets("Data").Cells(Rows.count, 1).End(xlUp).Row

    ActiveWorkbook.Names("myData").RefersTo = Sheets("Data").Range(Cells(1, 1), Cells(lastRow, lastColumn))
end sub

我认为我需要添加一些额外的参考,但无法看到我作为绝对的Excel VBA新手所缺少的东西!

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

这对你有用,

Sub updateDataSheet()
    Dim ws As Worksheet
    Dim lastColumn As long
    Dim lastRow As long
    Dim rng As Range
    Set ws = Worksheets("Data")
    With ws
        lastColumn = .Cells(1, Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = .Range(.Cells(1, 1), .Cells(lastRow, lastColumn))
        rng.Name = "myData"
    End With
End Sub

确定范围后,您可以为其命名。