さて、新しいスプレッドシートとしてコピーして元のスプレッドシートのセルの値として再設定しようとしているスプレッドシートがあります。マクロを初めて実行すると、正常に動作します。しかしそれ以降、「Name is already taken」というエラーが表示され、セルC2で新しい値を取得する代わりに、元の変数(x)の値を再度渡そうとします。VBA - 変数マクロの2回目の実行後に更新されない
私は自習していますが、これでもまだかなり新しいです。どんな助けでも大いに感謝しています。私の範囲参照にエラーが入っているように感じます。変数(x )私が紛失しているかもしれないその細胞の価値に。
Sub freezesheet()
Dim x As String
Sheets("Sheet1").Activate
x = Range("C2:C2").Value
Debug.Print (x)
Sheets("Sheet1").Copy after:=Sheets(3)
Sheets("Sheet1 (2)").Name = x
x = ""
Debug.Print (x)
Cells.Select
selection.Copy
selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
ワークシートの名前は、すべてのワークシートに固有の名前を付ける必要があります。 C2からワークシート名を取得しているため、C2の値が変更されなかった場合は、ワークシートに重複した名前を付けると、エラーが発生します。重複したワークシート名を割り当てようとしていないことを確認してください。 – tigeravatar
マクロを実行すると、ブックのアクティブなシートがコピーになります。そのシート上のセルC2を更新すると、スクリプトがSheet1のセルC2を参照するため、マクロを再度実行すると、エラーが表示されます。あなたがこのミスを犯した可能性はありますか? – phhlho
@tigeravatar - 私はそれを更新しようとするたびにセルC2を変更しています。例えば。最初の実行時のセルC2は10011-01であり、2回目の実行時にシート1の10011-02に変更されますが、シート1に戻るときに同じエラーが表示されます。マクロは10011-02を元の10011-01。 – DataNinja