ホームページ >ソフトウェアチュートリアル >オフィスソフトウェア >Excel シートを 1 シートあたり 300 行に分割するマクロ
パブリックサブmySub()
Dim shS As Worksheet: Set shS = ActiveSheet 'ソース データ シート、現在のアクティブ シート
Dim rS&: rS = 1 'ソース データ テーブル、この行からデータの読み取りを開始します
Dim rC&: rC = 300 '毎回読み取られる行数
Dim rNew$: rNew = 1 '新しいテーブルを作成し、データをこの行に貼り付けます
Dim rZ&: rZ = shS.usedRange.Row shS.usedRange.Rows.Count - 1
Dim shNew As Worksheet、nm$、n%、r&
r = rS
r の間実行します
n = n 1
Set shNew = Worksheets.Add(after:=Sheets(Worksheets.Count))
nm = "テーブル" & rC & "_"" & n
ShNm(shNew, nm)を呼び出します
shS.Rows(r).Resize(rC).Copy shNew.Rows(rNew)
r = rC * n rS
###ループ###メッセージボックス「ok」
エンドサブ
Public Sub ShNm(ワークシートとしての sh、バリアントとしての nm)
エラー時は次へ再開
100:
sh.Name = nm
If エラー番号
0 thenエラークリア
nm = Application.InputBox( __
" " " & nm & " " はすでに存在します! " & Chr(10) & Chr(10) & "新しいテーブル名を入力してください: ", __
"新しいテーブル名を入力してください", nm & "_new", __
タイプ:=2)
If nm = False then MsgBox "入力が正しくありません。プログラムを終了してください!": End
GoTo 100
終了の場合
エンドサブ
EXCEL でマクロ コマンドを使用してシーケンスを分割する方法 (たとえば、PL10 120 を
に分割する)'
' マクロ 6 マクロ
'
'
Selection.TextToColumns Destination:=Range("A1")、DataType:=xlDelimited、__
TextQualifier:=xlDoubleQuote、ConsecutiveDelimiter:=False、Tab:=False、__
セミコロン:=False、コンマ:=False、スペース:=False、その他:=True、その他の文字 __
:="*", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
列("A:A").選択
Selection.Replace What:="PL"、置換:=""、LookAt:=xlPart、__
SearchOrder:=xlByRows、MatchCase:=False、SearchFormat:=False、__
ReplaceFormat:=False
列("C:D").選択
Selection.Insert Shift:=xlToRight、CopyOrigin:=xlFormatFromLeftOrAbove
範囲("C1").選択
ActiveCell.FormulaR1C1 = "=MIN(RC[-2],)"
範囲("C1").選択
ActiveCell.FormulaR1C1 = "=MIN(RC[-2],RC[-1])"
範囲("D1").選択
ActiveCell.FormulaR1C1 = "=MAX(RC[-3],RC[-2])"
Range("C1:D1").Select
Selection.AutoFill Destination:=Range("C1:D1000")
Range("C:D").Select
列("A:B").選択
Range("B1").Activate
列("C:D").選択
選択.コピー
Selection.PasteSpecial Paste:=xlPasteValues、Operation:=xlNone、SkipBlanks __
:=False、転置:=False
列("A:B").選択
Range("B1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
列("A:B").選択
Selection.Replace What:="0"、置換:=""、LookAt:=xlWhole、__
#SearchOrder:=xlByRows、MatchCase:=False、SearchFormat:=False、__
ReplaceFormat:=False
エンドサブ
注: 使用する場合は、最初に列 A を選択してからマクロを実行します。分割する列は列 A になければならず、BC の 2 つの列は空でなければ上書きされます (笑、時間が短いです) 、特にスマートではありません)、行数は 1000 行以下です。あはは、そうしないと少し遅くなるので、範囲は 1000 行に設定されています。鉄骨構造物も手掛けているんですか?あはは、それも
EXCEL でマクロを使用して、テーブル内の A とこれらの自動シンボルを次の列に分割する方法
サブテスト()
範囲としての寸法を調整
バリアントとしてのディム arr
Dim k As Integer
選択範囲内の各rngについて
rng.Value = Replace(rng.Value, ":", "/")
arr = Split(rng.Value, "/")
k = UBound(arr) 1
rng.Resize(1, k) = arr
arrを消去
次の候補
End Sub コードの貼り付け方法はご存知かと思いますので、詳細は省略します。下の画像を押して、私が書いたコードを実行してください:
###ステップ1######ステップ2###
ステップ-3
ステップ-4
Excel テーブルを複数の Excel テーブルにすばやく分割し、元の数式を保持する方法
[開発ツール]-[Visual Basic] または Alt F11 ショートカット キーをクリックして、VBE 編集インターフェイスに入ります。
新しいモジュールの挿入を選択してください
サブCFGZB()
myRange をバリアントとして暗くする
myArray を暗くする
タイトルを範囲として暗くする
タイトルを文字列として暗くする
Dim columnNum As Integer
myRange = Application.InputBox(prompt:="タイトル行を選択してください:", Type:=8)
myArray = WorksheetFunction.Transpose(myRange)
Set titleRange = Application.InputBox(prompt:="分割ヘッダーを選択してください。最初の行でセルである必要があります。例: "Name"", Type:=8)
title = titleRange.Value
以上がExcel シートを 1 シートあたり 300 行に分割するマクロの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。