ワークシートが要約される場合、ワークシートは分割されます。ワークシートをすばやく分割するにはどうすればよいですか?この記事では、ワークシートを素早く分割して効率を 99.99% 向上させる 2 つの方法を紹介します。
こんな問題に遭遇したことはありませんか。すべての情報をテーブルにまとめた後、この大きなテーブルを特定の条件に従って並べ替える必要があります。条件は次のように分割されます。複数のワークシート。どうすればこれを達成できるでしょうか?おそらく最も愚かな方法は、元のワークシートのデータをフィルターしてから、それをコピーして新しいワークシートに貼り付けることです。ただし、この方法は大量のデータがある場合には適しておらず、新しいワークシートの名前も変更する必要があります。 1つは面倒なことです。今日は、ワークシートを分割するための 2 つの簡単で実用的な方法を紹介します。
図に示すように、このワークシートの内容を都市ごとに複数のワークシートに分割する必要があります。
VBA は、大規模なデータを処理する EXCEL です。反復作業の量 使用するのに最適なツール。しかし、多くの人は VBA について何も知らないので、今日はコードの一部を共有し、仕事で使用できるように実際のテーブルに応じてコード値を変更する方法を詳しく説明します。
(1) Alt F11 を押して VBA エディタを開き、[挿入] メニューの [モジュール] をクリックします。
(2) 右側のコードウィンドウに次のコードを入力します。手で入力したくない場合は、グループに参加して、準備されたコード ファイルをダウンロードし、コピーして貼り付けるだけで済みます。
サブ分割テーブル()
Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String Application.ScreenUpdating = False With Worksheets("Sheet1") iRow = .Range("A65535").End(xlUp).Row iCol = .Range("IV1").End(xlToLeft).Column t = 3 For i = 2 To iRow str = .Cells(i, t).Value On Error Resume Next Set sh = Worksheets(str) If Err.Number <> 0 Then Set sh = Worksheets.Add(, Worksheets(Worksheets.Count)) sh.Name = str End If sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value iNum = sh.Range("A" & Rows.Count).End(xlUp).Row sh.Range("A" & iNum + 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value Next i End With Application.ScreenUpdating = True End Sub
コード分析:
ここでの赤いテキストは、実際の状況に応じて変更する必要があるコード パラメーターを示します。' はコメントを示すために使用されます。次のテキストは、コードの動作には影響しませんが、コードを説明するためにのみ使用されます。注釈テキストは、ここでは特に灰色で示されています。
サブ 分割テーブル 'ファイル名。独自のファイル名に従って変更します
Dim i、iRow、iCol、t、iNum を整数として、sh をワークシートとして、str を文字列として
# Application.ScreenUpdating = False '画面の更新をオフにする
With Worksheets("Sheet1")'二重引用符は、実際のワークブック名 , です。ワークブック名の変更
iRow = .Range("A65535").End(xlUp).Row '列 A から取得最後の行から始まるワークシート内の行数。通常、Range の列パラメータのみが変更されます。ワークシートの有効範囲を B 列から開始する場合は、の場合、値は B65535 です。
iCol = .Range("IV1").End(xlToLeft).Column'最後の列から ( IV ) 行 1 から始まるワークシートの列数を取得します。通常、Range の行パラメーターのみが変更されます。ワークシートの有効範囲が必要な場合は、 行 2 から始まり、値は IV2 ## になります。
t = 3 't は列の数です。たとえば、# を押した場合に、どの列に基づいて分割するかを設定します。 ##E列分割、これは t=5 2 To iRow 'i は行数であり、分割値を取得する行を設定します。テーブルの実際の変更 'セル(i, t)の値を分割テーブル名として取得します #
エラー時は次へ再開
Set sh = Worksheets(str) '上記で取得した値に基づいて名前を付けたワークシートを作成します##
If Err.Number 0 then このワークシートが存在しない場合は、ワークシートを追加して名前を付けます
Set sh = Worksheets.Add(, Worksheets(Worksheets.Count)) ##
sh.Name = str
End If ' このワークシートが存在する場合
sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1,
iCol).Value 'ワークシートのタイトルを取得します。通常、Range の列値と Resize# の行値のみが取得されます。仕事など ## が変更されます。 テーブルのタイトルは B 列の 3 行から始まり、このコードは sh.Range("B1").Resize( 3、
iCol).Value = .Range("B1").Resize(3, iCol).Value ' A"
& Rows.Count).End(xlUp).Row ' 通常、Range の列値のみが変更されます。たとえば、ワークシートはB列の先頭、ここは Range("B" & Rows.Count).End(xlUp).Row## になります。
sh.Range(" A" & iNum)
1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value ' ワークシート データを新しいテーブルに貼り付けます。通常、Range の列値のみが変更されます。ワークシートが # のものの場合、 ##B 列が開始する場合は、B を Range("B") に変更します。
& iNum 1).Resize(1, iCol).Value = .Range("B" & i).Resize(1,
iCol).Value
次は
## で終了
Application.ScreenUpdating = True '画面更新をオンにするEnd
Sub
次のように完了します。 このようにして、ワンクリックでワークシートの分割が完了します。 タイプ 2: 従来の分割 - ピボット テーブル (2) 分割するフィールド「City」をフィルターフィールドに、「Date」フィールドと「Salesperson」フィールドを行フィールドに、「Sales」フィールドを値フィールド。 (3) 新しいワークシートを生成するときにテーブル形式の形成を容易にするために、ピボット テーブルの形式を変更します。 [ピボットテーブル ツール] の [デザイン] タブにある [レポート レイアウト] ドロップダウン メニューで [テーブルとして表示] を選択します。 [ピボットテーブル ツール] の [デザイン] タブにある [レポート レイアウト] ドロップダウン メニューで [すべてのアイテム ラベルを繰り返す] を選択します。 [ピボットテーブル ツール] の [デザイン] タブにある [小計] ドロップダウン メニューで [小計を表示しない] を選択します。 完成した結果は次のとおりです。 (4) 最後に、ピボット テーブルを各ワークシートに分割します。 [ピボット テーブル ツール] の [分析] タブの [ピボット テーブル] 機能ブロックにある [オプション] ドロップダウン メニューから [レポート フィルター ページの表示] を選択し、レポート フィルター ページのフィールドとして [都市] を選択します。表示される。 # (5) 後続の処理を容易にするために、ピボット テーブルを通常のテーブルに変更します。最初のワークシートを選択します
「北京」、Shift キーを押しながら最後のワークシート「重慶」をクリックして、ワークシート グループを形成します。これにより、すべてのワークシートに対してバッチで統一された操作が可能になります。 すべてを選択し、値としてコピーして貼り付けます。 最初の 2 行を削除し、日付列の幅を調整すれば完了です。 # ピボットテーブル方式の方が使いやすいですが手順が多く、VBA は操作が簡単ですが覚えることが多くなります。皆さんそれぞれの状況に合わせて使い分けていますので、良いと思ったらぜひ「いいね!」をお願いします! 関連する学習の推奨事項: Excel チュートリアル(1) データ ソース内の任意のセルを選択し、[挿入] タブの [ピボット テーブル] をクリックします。既存のワークシートを選択し、「OK」をクリックします。
以上が実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。