0

私は 2400 社の Excel スプレッドシートを持っています。それは今のように見えます -

Autumn Ridge Golf Course, Inc.
11420 Auburn Road
Fort Wayne, IN 46845
(260) 637-8727


All Occasion Party Rental
4620 Speedway Drive
Fort Wayne, IN 46825
(260) 484-3964

……など

私の目標は、わかりやすい表形式にすることです。

Autumn Ridge Golf Course  11420 Auburn Road    Fort Wayne IN 46845 (260)637-8727
All Occasion Party Rental 4620 Speedway Drive  Fort Wayne IN 46825 (260)484-3964

「コピー」/「特殊貼り付け」「転置」Excelオプションを知っています。しかし、それはかなり遅くなるでしょう... 2400社と関係があります。

それを行うためのより速い方法はありますか?データをテーブルのような (水平) ビューに変換する方法が必要です

助けてくれてありがとう!

4

2 に答える 2

1

VBA を使用してデータを配列に格納し、新しいワークシートに書き出す方法を次に示します。

すべてのデータセットの間に空白行があり、特定のデータセット内に空白行はないと仮定します。

Sub HorizontalSplit()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
Dim cl As Range
Dim c As Long: c = 0
Dim r As Long: r = 1
Dim addressInfo() As Variant


Set sh1 = Worksheets("Sheet1") 'Modify as needed`
Set sh2 = Worksheets.Add(After:=sh1) 'Modify as needed, set to an existing sheet, etc.`

With sh1
    Set rng = .Range("A1:A2500") 'Modify as needed to fit your range of address info`
    For Each cl In rng

        If cl.Value = vbNullString Then
        'write out the data (if any), or skip the cell if there is no data in the array`
            If UBound(addressInfo) > 0 Then
                For c = 0 To UBound(addressInfo)
                    sh2.Cells(r, c + 1).Value = addressInfo(c)
                Next

                c = -1
                'clear out our array for the next brand'
                Erase addressInfo
                ReDim addressInfo(0)
                r = r + 1
            End If
        Else:
            'Add this row of data to the array
            c = c + 1
            ReDim Preserve addressInfo(c)
            addressInfo(c) = cl.Value

        End If
    Next
End With

End Sub
于 2013-04-10T03:16:28.230 に答える
0

データが指定どおりにフォーマットされている場合は、Excel 以外の方法をすばやく簡単に使用できる可能性があります。

  1. データを適切なテキスト エディター (Notepad++ など: http://notepad-plus-plus.org/ )にコピーします。
  2. 「拡張」の検索モードを使用して検索/置換を実行し、複数の空白行のすべてのインスタンスを何らかの特殊文字に置き換えます。(たとえば、アドレス間に空白が 1 つある場合は、\r\n\r\nを検索して|に置き換えます。)
  3. 残りの空白行を検索/置換し、タブに置き換えます。(再び拡張モードで、\r\nを検索して\tに置き換えます)
  4. 特殊文字の検索/置換を新しい行で再度実行します。(拡張モードでは、|を見つけて\r\nに置き換えます)
  5. 結果のテキストをコピーして Excel に貼り付けます。追加のクリーンアップは、Excel の数式の範囲内で行う必要があります。

追加のソフトウェアをダウンロードできない場合 (ただし、Notepad++ を強くお勧めします) は、MS Word で同様のことを実行できるはずです。http://office.microsoft.com/en-us/word-help/find-and-replace-text-or-other-items-HA001230392.aspx#_Toc282602054のドキュメントは、私が覚えているものと同じようですここで、^pは段落記号 (改行) の検索に使用され、^tはタブの検索に使用されます。

于 2013-04-10T01:56:26.183 に答える