約 4000 行のデータを含むスプレッドシートがあります。データの列の 1 つに、区切り記号として「/」を使用して区切られる一意の注文番号があります。だから本質的に私が欲しい:
Name Order# Date
Jane 123/001/111 08/15/2013
Gary 333/121 09/01/2013
Jack 222 09/02/2013
次のように表示するには:
Name Order# Date
Jane 123 08/15/2013
Jane 001 08/15/2013
Jane 111 08/15/2013
Gary 333 09/01/2013
Gary 121 09/01/2013
Jack 222 09/02/2013
私は VBA にかなり慣れていないので、この素敵なコードに出くわした解決策を Google で試してみることにしました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ans
Dim Cels As Long, i As Long
Cancel = True
ans = Split(Target, ":")
Cels = UBound(ans)
Target.Offset(1).Resize(Cels).EntireRow.Insert shift:=xlDown
Rows(Target.Row).Copy Cells(Target.Row + 1, "A").Resize(Cels)
For i = 0 To Cels
Target.Offset(i) = ans(i)
Next
End Sub
うまく機能しますが、このマクロが機能する方法は、行をダブルクリックして値を区切る必要があることです。私が望んでいたのは、この関数を For ループを介して渡して、スプレッドシート全体で実行する方法です。