請問如何將資料"剪下"然後向中間的空格向上貼齊呢?
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
或許也可以採用先清除空白行內的公式, (因為用不到)
再利用 Range的Copy函數依序將公式搬移上來.
這裡請恕不再列出如何找空白行的公式.
With Worksheets("Sheet3")
.Range("A2:J3").Clear
.Range("A5:J6").Clear
.Range("A8:J9").Clear
.Range("A4:J4").Copy _
Destination:=.Range("A2")
.Range("A4:J4").Clear
.Range("A7:J7").Copy _
Destination:=.Range("A3")
.Range("A7:J7").Clear
.Range("A10:J10").Copy _
Destination:=.Range("A4")
.Range("A10:J10").Clear
End With |
|
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2010-7-26 00:14 編輯
回復 6# vpower
如果只是單純的要將資料放在一起,
我之前有想到一種方法可以達成.
(因為之前用的方式就不是用公式做的, 所以先提供給你應急用, 至於用公式來達成的方式就煩請其他人提供給你囉)
就是先在某欄最上方訂定一個基數(0 或 1000 皆可),
C1 = 1000
然後利用公式將有資料的那一列依序編號,
C2 = IF(A1="",IF(C1<1000,C1+1000,C1),IF(C1<1000,C1+1,C1-1000+1))
C3 以後直接 下拉即可,(範例中下拉到 C501, 因為 C1並未對應到資料的第一列)
最後再一一抓出來顯示資料即可,
D1 = IF(ROW()>$F$1,"",INDIRECT(CONCATENATE("A",MATCH(ROW(),$C$1 C$501,0)-1)))
E1 = IF(ROW()>$F$1,"",INDIRECT(CONCATENATE("B",MATCH(ROW(),$C$1 C$501,0)-1)))
D2 與 E2 以後亦直皆下拉即可,,(範例中下拉到 D500, 因為 D1有對應到資料的第一列)
至於要怎樣使用抓出來的資料那就要看你的需求囉.
ask2_a.zip (84.19 KB)
|
|
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2010-7-27 00:21 編輯
我剛剛想到可以用公式套用我在第 7 篇上所使用的方法,
就是用程式在 "原稿" 的 NOPQRST 等欄分別列出各級學校名稱如 "托兒所"、"小學"...等依次的關鍵字,
再於各欄將每筆資料抓出來依序給予編號,
以上程式如下:
Sub Main()
Dim iCount As Integer, iCol As Integer, iFrow As Integer, iRow As Integer
Dim iI As Integer, iJ As Integer
Dim rC As Range
With Sheets("原稿")
With .Range("a1:m1")
Set rC = .Find("學校", LookIn:=xlValues)
If Not rC Is Nothing Then
iCol = rC.Column
End If
End With
iCount = .Cells(Rows.Count, iCol).End(xlUp).Row()
.Range(Cells(2, 14), Cells(iCount, 20)).Clear
For iI = 1 To 7
With .Range(Cells(1, iCol), Cells(iCount, iCol))
Set rC = .Find(Cells(1, 13 + iI), LookIn:=xlValues)
If Not rC Is Nothing Then
iJ = 0
iFrow = rC.Row
Do
iJ = iJ + 1
iRow = rC.Row
Cells(iRow, 13 + iI) = iJ
Set rC = .FindNext(rC)
Loop While Not rC Is Nothing And rC.Row <> iFrow
End If
End With
Next iI
End With
End Sub
ask2_a2.zip (75.51 KB)
如此甚至整個 "分類" Sheet 的內容與文字格式等都可以用程式直接產生出來. (只要沒刪到第一列的欄位名稱,應該都不受原稿編修的影響)
因為時間晚了來不及繼續下去這部份就要請你自己做或等我晚上有時間才能做囉. |
|
|
|
|
|
|
|