シートに一意の名前を付ける式を含むセル値(A4)に基づいてタブ名を変更したマクロがあります。重複がある場合に特別なケース処理を行うことができました。特別な重複処理を使用してセルの値に基づいてタブ名を変更するマクロ
Sub RenameFromA4()
Dim Msg As String, i As Integer
For i = 5 To Sheets.Count
If Sheets(i).Range("A4").Value = "" Then
Msg = "Sheet " & i & "(" & Sheets(i).Name & ") has no value in A4. Fix sheet, then rerun."
MsgBox Msg, vbExclamation
Exit Sub
Else
On Error GoTo ErrSheetName
Sheets(i).Name = Sheets(i).Range("A4").Value
On Error GoTo 0
End If
Next i
Exit Sub
ErrSheetName: Msg = "Sheet " & i & "(" & Sheets(i).Name & ") could not be renamed. Check if name already used."
MsgBox Msg, vbExclamation
End Sub
私はに実行するトラブルが時々重複が発生し、それが完全に停止します私の全体のマクロを実行することができますエラーです。だからここのコードです。だから私は、マクロが重複を検出したときに、セルB3に次の式を追加するシーケンスを追加したいと思います。="IF(AND(C4="",D4="",D3="",C3=""),TRIM((MID(A2,FIND(":",A2)+2,20))),"")&IF(IFERROR(FIND("West",A2),0)>0," W","")&" "&TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",255)),255))"
エラーを選択するか、マクロを再実行します。
これをどのように構造化できないかについての洞察は役に立ちます。
:次に、あなたの
On Error...
とSheets(i).Name...
の間で、次のようなものを挿入することができます'= A4'をあなたが望む式に置き換えます。あなたの数式には引用符があるので、それらを複数で置き換える必要があります - おそらく、数式をテキスト文字列に最初に構築してください。 – OldUgly