1
1.Dim destbook As Workbook
2.Dim destsheet As Worksheet
3.Set destbook = ActiveWorkbook
4.Set destsheet = destbook.Sheets(1)
5.Dim ct As Integer
6.destsheet.Range("C1048576").Select
7.ct = Selection.End(xlUp).Row
8.Windows("Book1.xlsm").Activate
9.Sheets("Sheet1").Activate
10.Range(Cells(ct, 1)).Offset(1, 0).Select

在第 10 行,我收到一条错误消息,提示“对象 '_Global' 的方法 'Range' 失败”。

4

3 回答 3

0

试试下面的代码。避免在代码中使用 Activate 、 Select 和 Activeworkbook 以获得更好的结果。

Sub test()

    Dim destbook As Workbook
    Dim destsheet As Worksheet

    Set destbook = ThisWorkbook
    Set destsheet = destbook.Sheets(1)

    Dim ct As Integer
    With destsheet
        ct = .Range("C" & .Rows.Count).End(xlUp).Row
    End With

    Windows("Book1.xlsm").Activate
    With Sheets("Sheet1")
        .Select
        .Range(.Cells(ct, 1)).Offset(1, 0).Select
    End With

End Sub
于 2013-09-20T05:31:11.547 回答
0

如果您只想选择第一个工作表中 C 列最后一个单元格下方的单元格:

Sub SO_18909094()
    Dim destbook As Workbook
    Dim destsheet As Worksheet

    Set destbook = ActiveWorkbook
    Set destsheet = destbook.Sheets(1)

    destsheet.Range("C" & Rows.Count).End(xlUp).Offset(1, 0).Select

    Set destbook = Nothing
    Set destsheet = Nothing
End Sub
于 2013-09-20T05:56:45.587 回答
0

Cells(ct,1)指坐标 (ct,1) 处的单元格的,实际上不是有效的单元格地址(当然,除非您这样做!),因此Range会引发异常。

你可以放下Range它,它就可以工作。

Cells(ct, 1).Offset(1, 0).Select

于 2020-06-13T15:29:58.057 回答