Sheets("Omrnavne")
互いに下に複数の範囲名が書かれたシート ( ) のセルから、コードは最初に書かれた値 (範囲名) を見つけ、この名前を持つ実際の範囲を見つけて選択しSheets("Specifikationer")
、データをコピーし、次の値に移動しなければなりませんSheets("Omrnavne")
。実際の範囲を見つけ、値を貼り付けて最初からやり直してください。
問題: 範囲名Sheets("Omrnavne")
として存在しない範囲名が書かれている場合、これをスキップするにはどうすればよいですか?
次のコードIf Range(whatToFind) Is Nothing Then
を使用すると、次のエラーが表示されます。
実行時エラー '1404': オブジェクト '_Global' のメソッド 'Range' が失敗しました
存在しない範囲名を検索するとき。
私は何時間も試しましたが、成功しませんでした。助けてください - ありがとう。
コードは次のとおりです。
Sub Test1()
Dim whatToFind As String
Sheets("Omrnavne").Select
' Select first line of data*.
Range("a1").Select
' Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
whatToFind = ActiveCell.Value
'Find rangename, select and copy
Sheets("Specifikationer").Select
With Sheets("Specifikationer")
On Error Resume Next
On Error GoTo 0
If Range(whatToFind) Is Nothing Then ' <~~~~ ERROR HERE
Sheets("Omrnavne").Select
ActiveCell.Offset(2, 0).Select
whatToFind = ActiveCell.Value
Else
Range(whatToFind).Select
Selection.Copy
End If
End With
' Find and select rangename to paste to
Sheets("Omrnavne").Select
With Sheets("Omrnavne").Select
ActiveCell.Offset(1, 0).Select
whatToFind = ActiveCell.Value
Sheets("Specifikationer").Select
Range(whatToFind).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End With
' Step down 1 row from present location.
Sheets("Omrnavne").Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub