3

状況は単純です。 cell に名前を付けA1てから、 cell から cellにMY_CELLCUT AND PASTEすると、その名前が失われ、再度名前が付けられます。A2MY_CELLMY_CELLA1

ただし、からコピーして貼り付けるA2と、これは起こりませんMY_CELL

CUT AND PASTEで Excel がセル名をリセットしないようにするにはどうすればよいですか?

4

1 に答える 1

2

ロジックA1: イベントを使用して Cell への変更をトラップWorksheet_Changeし、名前が失われた場合は名前を再作成します。

コード:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim DoesRngNameExists As Boolean
    Dim sName As String

    On Error GoTo Whoa

    Application.EnableEvents = False

    '~~> You named range
    sName = "MY_CELL"

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        '~~> Check if the Range exists
        On Error Resume Next
        DoesRngNameExists = Len(Names(sName).Name) <> 0
        On Error GoTo 0

        '~~> If not then recreate it
        If DoesRngNameExists = False Then _
        ThisWorkbook.Names.Add Name:=sName, RefersToR1C1:="=Sheet1!R1C1"
    End If

Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub

:該当シートのシートコードエリアのコード。以下のスクリーンショットを参照してください。

ここに画像の説明を入力

于 2013-04-11T15:24:29.787 に答える