我有一個名爲Data Sheet
的電子表格,它通過公式從其他工作表中收集數據並完美工作。我需要一個宏來複制多行數據,以便我可以粘貼到單獨的工作簿中。僅當數據存在時複製多行數據
我有30行數據範圍從A3:EI3
到A32:EI32
。如果數據可見並輸入數據,則會從1到30張其他表中收集這些數據。這是棘手的部分:我只想收集可見表格中的數據。
以下是我正在尋找的流程示例:Sheet 1
始終可見,永不隱藏。 Sheet 2
,Sheet 3
和Sheet 4
是可見的,但Sheet 5
到Sheet 30
仍然隱藏。 Data Sheet
已經從可見表中收集數據,但其餘行(表5-30)都在數據單元中顯示0
。
我現在想運行一個宏,將從Data Sheet
Row 3
中的數據複製(複製到剪貼板)(代表Sheet 1
),Row 4
(代表Sheet 2
)等,讓我貼到下一個可用的行中的另一個工作簿。
以下是適用於單行數據的代碼。
VBA代碼:
Sub CopyDataSheet()
'
' CopyDataSheet Macro
'
Application.ScreenUpdating = False
Sheets("Data Sheet").Visible = True
Sheets("Data Sheet").Select
Rows("3:3").Select
Selection.Copy
Rows("1:1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E1:EF1").Select
Application.CutCopyMode = False
Selection.NumberFormat = "0"
Rows("1:1").Select
Range("B1").Activate
Selection.Copy
Sheets("Sheet 1").Select
Range("a38").Select
Sheets("Data Sheet").Visible = True
Application.ScreenUpdating = True
MsgBox "YOU HAVE CAPTURED ALL ENTERED DATA..." & _
vbCrLf & vbCrLf & "CLICK OK" _
& vbCrLf & vbCrLf & "PASTE INTO NEXT EMPTY LINE OF DATA SHEET", _
vbInformation, ""
End Sub
爲什麼標記爲ms-access而不是Excel? – Fionnuala 2009-12-22 21:53:13
好點...這個問題的編輯是一團糟。編輯代碼的人在代碼塊中的一個不利位置留下了「在此輸入代碼」。我已經爲Excel重新制作了它,這顯然是這樣的。 – 2009-12-23 15:22:37