スプレッドシートの名前に従って、同じワークブックの複数のExcelスプレッドシートを1つのスプレッドシートに結合するためのスクリプトが必要です。ただし、スプレッドシートの名前は別の名前になっています。 0000a、0000b、0000c ....名前の最初の4つの数字を比較するにはどうすればよいでしょうか?同様に、名前を0000の1つのスプレッドシートに結合しますか?助けを事前に感謝名前に基づいてExcelでスプレッドシートを結合する
-1
A
答えて
1
はすなわち、Worksheet.Name
と名前を取得します。Left
で
Dim ws as Worksheet
For Each ws in Worksheets
MsgBox Left(ws.Name, 4)
Next ws
あなたが最初の4つの文字を抽出することができます。 array
に保存する場合はApplication.Match
-Functionを使用してarray
の値と一致させることができます。あなたが戻ったインデックスでは、Worksheets(index)
を参照することができます。
EDIT:[Excelのシートを組み合わせ]の
Sub ad()
Dim ws As Worksheet
Dim lc As Range, lc1 As Range
Dim arr() As String, index As Long, Count As Long
Count = Worksheets.Count
ReDim arr(1 To Count) 'Array to store worksheetsnames
For i = 1 To Count
arr(i) = Left(Worksheets(i).Name, 4) 'cut 4 letters and store in array
Next
On Error Resume Next
For i = Count To 2 Step -1
sval = arr(i) 'search value
ReDim Preserve arr(1 To i - 1) 'downsize array
index = Application.Match(sval, arr(), 0) 'find matching name in array
With Worksheets(index) 'lrow on ws to paste
Set lc = .Cells.Find(what:=Chr(42), after:=.Cells(1), searchdirection:=xlPrevious, _
lookat:=xlPart, searchorder:=xlByRows, LookIn:=xlFormulas)
End With
With Worksheets(i) 'lrow on ws to copy
Set lc1 = .Cells.Find(what:=Chr(42), after:=.Cells(1), searchdirection:=xlPrevious, _
lookat:=xlPart, searchorder:=xlByRows, LookIn:=xlFormulas)
End With
Worksheets(i).Range("A1:" & lc1.Address).Copy Worksheets(index).Range("A" & lc.Row + 1) 'copy paste
Worksheets(index).Name = sval 'rename to first 4 letters
Application.DisplayAlerts = False
Worksheets(i).Delete
Application.DisplayAlerts = True
Next i
End Sub
関連する問題
- 1. Excelの2列に基づいて名前を取得する
- 2. Excel VBA:名前に基づいてチェックボックスをループする方法
- 3. 名前に基づいてExcelセルの内容を消去する
- 4. セルの値に基づいてExcelワークシートの名前を変更する
- 5. Excelスプレッドシートの列に基づいて辞書を編成する方法
- 6. Excelのスプレッドシートを列ヘッダーに基づいて異なるワークシートに分割
- 7. CSVのcommn値に基づいてフォルダとファイル名を結合する
- 8. Mysql列名とフィールド値に基づいてテーブルを結合する
- 9. Excelマクロを結合する2つのExcelデータを重複データに基づいて変換する
- 10. Excel:スプレッドシート上の場所に基づいてスコアを返します
- 11. Excelで日付と名前に基づいたデータを効率的に組み合わせる
- 12. 辞書を使用してExcelスプレッドシートを結合する
- 13. 条件に基づいてdata.tableの列名を連結する
- 14. 結合テーブルの条件に基づいてモデルレコードを結合するFetch Rails
- 15. サブストリングに基づいて名前を導出する
- 16. 親ディレクトリに基づいてファイルの名前を変更する
- 17. 値に基づいて定数の名前を決定する
- 18. 月(名前)に基づいてデータを取得する
- 19. Python - 名前に基づいてクラスメンバーをリセットする方法
- 20. 日付とユーザーに基づいて名前を取得する
- 21. 名前に基づいてxmlファイルからポケモンをロードする
- 22. 値を取得する名前に基づいて
- 23. CSVの名前を列名に基づいて変更
- 24. ディレクトリ名に基づいてGulpを使用してファイル名を連結して名前を変更
- 25. 基準に基づいてレコードを結合
- 26. 名前プレフィックスに基づいたgrepファイル
- 27. MYSQLは列データとテーブル名に基づいてテーブルを結合します
- 28. Python igraph、頂点の名前/ラベルに基づくグラフの交点/結合
- 29. セルの値に基づいてセルを結合する
- 30. Spark:結合操作に基づいてデータフレームを更新する
可能な複製(https://stackoverflow.com/questions/26512995/combine-sheets-in-excel) – RealCheeseLord