2

このコードがあり、Sheet1 が選択またはアクティブ化されているときにマクロを実行すると、正常に動作します。
ただし、他のシートが選択されていると失敗します。なんで?
私は得る:

実行時エラー: 範囲クラスの選択メソッドが失敗しました

それはカバーされていませんか?Set ws = ThisWorkbook.Sheets("Sheet1")

Sub test()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        lrow = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("A1:M" & lrow).Select
    End With
End Sub

コードを改善して回避するにはどうすればよいRuntime Errorですか?
私は何が欠けていますか?
どんな助けでも大歓迎です。

4

1 に答える 1

1

それ自体に。数式が含まれているため、数式から取得した値のデータ形式を保持し、値として貼り付けたいと考えています。– L42 1分前

.Select前述したように、ほとんどの場合、 の使用を避けることができます。

これはあなたがしようとしていることですか?

交換

.Range("A1:M" & lrow).Select 

.Range("A1:M" & lrow).Value  = .Range("A1:M" & lrow).Value

それともこれ?

Sub test()
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        lrow = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("A1:M" & lrow).Copy
        .Range("A1:M" & lrow).PasteSpecial xlPasteValues
    End With
End Sub
于 2013-10-11T07:08:36.783 に答える