[英]Macro is copying only the visible cells
宏僅復制已過濾行的可見單元格,但我不使用僅復制可見單元格。 如何使我的宏復制所有單元格雖然它們在工作表中是不可見的
任何幫助是極大的贊賞
謝謝
尼科,
在這種情況下,只需復制工作表並進行兩次刪除,代碼將立即運行。 如果您的最后一行位置未知,那么我可以調整此代碼以找到真正的最后一行
Sub QuickKill()
Application.ScreenUpdating = False
ActiveSheet.Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.AutoFilterMode = False
.Rows("1:1499").Delete
.Rows("2001:30000").Delete
End With
Application.ScreenUpdating = True
End Sub
如果只復制單元格值和公式(即沒有格式化)是可以接受的,則可以使用它
Sub CopyAllData()
Dim v As Variant
Dim rngFrom As Range
Dim rngTo As Range
' set a reference to the range to be copied, eg
Set rng = [2:8]
' get the data
v = rng.Formula
' set a range to the desitination, eg
Set rngTo = [8:12]
' put the data
rngTo.Formula = v
End Sub
編輯
剛剛看到你對niko的評論,似乎你也想要格式。 一次復制一行就可以了
我最初嘗試rngTo.Hidden = FALSE
而不是rngTo.RowHeight = 15
,但它返回錯誤,不知道為什么
Sub CopyAll()
Dim rngFrom As Range
Dim rngTo As Range
Dim i As Long
Dim sh As Worksheet
Dim OldCalc As XlCalculation
On Error GoTo Cleanup
OldCalc = Application.Calculation
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
' set a reference to the range to be copied, eg
Set rngFrom = [2:12]
' set a range to the desitination first row, eg
Set sh = Worksheets("Sheet2")
Set rngTo = sh.[2:2]
' copy each row in turn and restore the copied row height
For i = 1 To rngFrom.Rows.Count
rngFrom.Rows(i).Copy rngTo
rngTo.RowHeight = 15
Set rngTo = rngTo.Offset(1, 0)
Next
Cleanup:
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = OldCalc
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.