VBAで一括リネームシートにどのような方法があります:エクセルVBA:一括リネームシート
のような何か:
sheets(array(1, 2, 3)).name = array("hep", "hey", "heppa!")
命名シート1、2、3 "HEP"、 "ちょっと" などとは「ヘパ!」明らかに
VBAで一括リネームシートにどのような方法があります:エクセルVBA:一括リネームシート
のような何か:
sheets(array(1, 2, 3)).name = array("hep", "hey", "heppa!")
命名シート1、2、3 "HEP"、 "ちょっと" などとは「ヘパ!」明らかに
は、他の誰かがスキップする方法を見つけることがつながりませんでしたループ
[エラー処理を含めてこれを標準的な方法で更新しました。以前はこのようなシートのコレクションを設定しようとしていませんでした。
Normal Code
Sub Normal()
Dim strShtOld()
Dim strShtNew()
Dim sht As Worksheet
Dim lngSht As Long
strShtNew = Array("hep", "hey", "heppa!")
strShtOld = Array("Sheet1", "Sheeta2", "Sheet3")
On Error Resume Next
For lngSht = LBound(strShtOld) To UBound(strShtOld)
Set ws = Nothing
Set ws = Sheets(strShtOld(lngSht))
If Not ws Is Nothing Then ws.Name = strShtNew(lngSht)
Next lngSht
End Sub
なぜ一括リネーム、好奇心やあなたは、コードの実行時に関係していることを行うために名前を変更するような大規模な量を持っているのですか?
Array Effort
Sub ArrayEx()
Dim varShts
Dim varSht
Dim strArray()
strArray = Array("hep", "hey", "heppa!")
Set varShts = Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
For varSht = 1 To varShts.Count
varShts(varSht).Name = strArray(varSht - 1)
Next
End Sub
私はマクロのペアを作成しました:
マクロ1:
Sub Sheetlist()
Dim x As Integer
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "sheetlist"
Range("A1").Select
ActiveCell.FormulaR1C1 = "Sheet List"
Range("C1").Select
ActiveCell.FormulaR1C1 = "New List"
For x = 1 To Worksheets.Count
Cells(x + 1, 1).Value = Worksheets(x).Name
Next x
End Sub
このマクロはで "sheetlist" と呼ばれ、現在のワークブック内のシートを作成し、現在のブックのすべてのシートのリスト。このシートには、名前を変更したい数のシート名を入力できる「新規リスト」(C1)という列もあります。
これでできることは、名前変更プロセスから除外する列A1の名前を削除することです。列AとCに空白がなく、AとCの名前の数も一致することを確認します。
今、あなたは第二のマクロを実行する準備ができている:
Sub batchrename()
'
' batchrename Macro
'
Dim OldSheetName As String
Dim NewSheetName As String
Dim SheetCount As Integer
Dim NewSheetList As String
NewSheetList = InputBox("How many names are there?") + 1
For SheetCount = 1 To Range("C2:C" & NewSheetList).Count
OldSheetName = Sheets("sheetlist").Cells(SheetCount + 1, 1)
NewSheetName = Sheets("sheetlist").Cells(SheetCount + 1, 3)
Sheets(OldSheetName).Select
ActiveSheet.Name = NewSheetName
Next SheetCount
End Sub
このマクロはsheetlistのAに記載されている名前に移動し、プロンプトがどこかを尋ねますsheetlist C.に記載されている名前に変更します名前のリストは、C列にある名前の数を入力し、Enterキーを押します。
私は配列代入の完全にわからなかった以外、私がやってしまった何のことだそれ
お楽しみは、「これは完全にオプションですが、あなたがREDIM StrArrayともでき、あなたがwouldnので、それは1ベースの作る – abcde123483
+1を速記しましたループの中から1つを減算する必要があります。 – JimmyPena