- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
3#
發表於 2012-4-9 17:53
| 只看該作者
回復 2# GBKEE
G大~ 他的資料~ 我在處理上是有一些問題的~
在每個區塊的空排列中~ 為非空白~ 處理起來蠻怪的~
我是用手動先把空白列DETEL~ 再用程式碼來跑~
請你在修改比較簡便的方式~- Private Sub CommandButton1_Click()
- Dim A As Integer
- Dim B As Integer
- Dim D As Integer
- A = InputBox("請輸入開始列") '15 140
- B = InputBox("請輸入結束列") '134 256
- If A >= 1 And B >= A Then
- For Each R In Sheet1.Range("C" & A & ":C" & B) '因C欄位的資料是文字,先轉換成數字
- Range("M" & R.Row) = R.Value
- Next
- C = Application.Max(Sheet1.Range("M:M")) '抓取計算的最大值
- Sheet1.Range("M" & A & ":M" & B).ClearContents '清除要排序的資料區
- For I = 1 To C
- For Each R In Sheet1.Range("C" & A & ":C" & B)
- D = I
- If R = D Then
- If A1 = "" Then
- Sheet1.Range("N" & A) = R.Value
- J = 0
- Do Until R.Offset(J + 1, 9) <> ""
- Range("P" & A + J) = R.Offset(0 + J, 2)
- If R.Offset(J, 8) <> "" Then
- Range("V" & A + J) = R.Offset(0 + J, 8)
- End If
- If R.Offset(J, 9) <> "" Then
- Range("W" & A + J) = R.Offset(0 + J, 9)
- End If
- J = J + 1
- Loop
- Else
- Sheet1.Range("N" & A1) = R.Value
- J = 0
- Do Until R.Offset(J, 2) = ""
- Range("P" & A1 + J) = R.Offset(0 + J, 2)
- If R.Offset(J, 8) <> "" Then
- Range("V" & A1 + J) = R.Offset(0 + J, 8)
- End If
- If R.Offset(J, 9) <> "" Then
- Range("W" & A1 + J) = R.Offset(0 + J, 9)
- End If
- J = J + 1
- Loop
- End If
- A1 = Range("P65536").End(xlUp).Offset(2, 0).Row
- End If
- Next
- Next
- End If
- End Sub
複製代碼 |
|