- 帖子
- 135
- 主題
- 19
- 精華
- 0
- 積分
- 165
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 香港
- 註冊時間
- 2010-12-9
- 最後登錄
- 2012-8-27
|
7#
發表於 2011-3-26 13:58
| 只看該作者
樓主1樓- Sub abc()
- Dim head(), body(), tail(), mycell As Range, i As Integer, j As Integer, k As Integer
- For Each mycell In Range([c2], [c65536].End(xlUp))
- ReDim Preserve head(i)
- ReDim Preserve body(i)
- ReDim Preserve tail(i)
- head(i) = Split(mycell, "-")(0)
- body(i) = Split(mycell, "-")(1)
- tail(i) = Split(mycell, "-")(2)
- i = i + 1
- Next
- Range("h2").Activate
- For j = 0 To UBound(head)
- For k = body(j) To tail(j)
- ActiveCell.Value = head(j) & "-" & k
- ActiveCell.Offset(1).Activate
- Next
- Next
- End Sub
複製代碼 樓主5樓- Sub myprint()
- Dim mycell As Range, head(), body(), tail(), BPnumber(), i As Integer
- Dim j As Integer, bp As Integer, k As Integer, l As Integer
- For Each mycell In Range([d2], [d65536].End(xlUp))
- ReDim Preserve head(i)
- ReDim Preserve body(i)
- ReDim Preserve tail(i)
- ReDim Preserve BPnumber(i)
- head(i) = Split(mycell, "-")(0)
- body(i) = Split(mycell, "-")(1)
- If UBound(Split(mycell, "-")) = 2 Then
- tail(i) = Split(mycell, "-")(2)
- Else
- tail(i) = ""
- End If
- BPnumber(i) = mycell.Offset(, 1).Value
- i = i + 1
- Next
- Range("L2").Activate
- For j = 0 To UBound(head)
- If tail(j) = "" Then
- If BPnumber(j) = 1 Then
- ActiveCell = Cells(j + 2, 2).Value
- ActiveCell.Offset(, 1) = Cells(j + 2, 2).Offset(, 1).Value
- ActiveCell.Offset(, 2) = head(j) & "-" & body(j)
- ActiveCell.Offset(1).Activate
- Else
- For bp = 1 To BPnumber(j)
- ActiveCell = Cells(j + 2, 2).Value
- ActiveCell.Offset(, 1) = Cells(j + 2, 2).Offset(, 1).Value
- ActiveCell.Offset(, 2) = head(j) & "-" & body(j) & Chr(64 + bp)
- ActiveCell.Offset(1).Activate
- Next
- End If
- Else
- If BPnumber(j) = 1 Then
- For k = body(j) To tail(j)
- ActiveCell = Cells(j + 2, 2).Value
- ActiveCell.Offset(, 1) = Cells(j + 2, 2).Offset(, 1).Value
- ActiveCell.Offset(, 2) = head(j) & "-" & k
- ActiveCell.Offset(1).Activate
- Next
- Else
- For k = body(j) To tail(j)
- For bp = 1 To BPnumber(j)
- ActiveCell = Cells(j + 2, 2).Value
- ActiveCell.Offset(, 1) = Cells(j + 2, 2).Offset(, 1).Value
- ActiveCell.Offset(, 2) = head(j) & "-" & k & Chr(64 + bp)
- ActiveCell.Offset(1).Activate
- Next
- Next
- End If
- End If
- Next
- End Sub
複製代碼 土法大煉鋼,比較繁複和慢一點
另外5樓附檔D7一欄,最右手面有多餘空格,會影響結果,要小心處理 |
|