- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 102
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-28
               
|
7#
發表於 2012-11-18 10:31
| 只看該作者
回復 6# 我是瑄
根據1#敘述寫入的目標工作表是工作表A,但程式碼卻是寫入到工作表C
以下程式碼是依據1#敘述不對工作表B進行篩選動作,
直接將P欄空格寫入工作表A,(寫入目標位置可自行參考更改)- Sub Input_Data()
- Dim Rng As Range
- With Sheets("B") '工作表B(資料區)
- r = .[Q65536].End(xlUp).Row
- If Application.CountBlank(.Range("P2:P" & r)) > 0 Then 'P欄空格數量大於0
- Set Rng = .Range("P2:P" & r).SpecialCells(xlCellTypeBlanks) '找到P欄空格
- ad = Split(Replace(Rng.Address(0, 0), "P", ""), ",") '取得空格的列位
- ar = Array(3, 1, 2, 4, 5, 6, 7, 8, 17) '寫入的欄位順序
- ReDim ay(UBound(ad) + 1, UBound(ar) + 1)
- For j = 0 To UBound(ad)
- For i = 0 To 8
- ay(j, i) = .Cells(ad(j), ar(i)).Value '將資料暫存陣列中
- Next
- Next
- End If
- End With
- With Sheets("A") '寫入的工作表
- With .[A3].Resize(j, i)
- .Value = ay '將陣列寫入目標區
- .Sort key1:=.Cells(1, 1) 'A欄排序
- End With
- End With
- End Sub
複製代碼 |
|