我想将ColumnA和B复制到新工作表范围A和B(在ColumnH中应用的源工作表过滤器)
此代码已记录为一,当我使用此随机错误时。因为我有5个子宏,当我调用这些子宏时,它无法正确运行。但是单个Macro可以完美运行。
所以我需要不使用剪贴板这种方法进行复制。过滤器使用状态下不使用
Sheets("GROUP1").Range("A:B").Value = Sheets("Sheet3").Range("A:B").Value
录制的宏
Sub Copypaste()
'Application.ScreenUpdating = False
Sheets("GROUP1").Select
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1:H1").Select
Range("H1").Activate
Application.CutCopyMode = False
Selection.AutoFilter
ActiveSheet.Range("$A:$H").AutoFilter Field:=8, Criteria1:="K-True", Operator:=xlFilterValues
Columns("A:B").Select
Application.CutCopyMode = False
Selection.Copy
DoEvents
Sheets("Sheet3").Select
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
您可以做的是通过Cell.RowHeight > 0
依次设置来遍历源工作表检查DestinationCell.Value = SourceCell.Value
。前任。:
Sub Copypaste()
Dim lRow As Long, lLastRow As Long, LRowCount As Long
Sheets("GROUP1").Select
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1:H1").Select
Range("H1").Activate
Application.CutCopyMode = False
Selection.AutoFilter
ActiveSheet.Range("$A:$H").AutoFilter Field:=8, Criteria1:="K-True", Operator:=xlFilterValues
lRowCount = 1
lLastRow = ActiveSheet.Cells.SpeciallCells(xlCellTypeLastCell).Row
For lRow = 1 to lLastRow
If ActiveSheet.Range(lRow).RowHeight > 0 Then
Sheets("Sheet3").Range("A" & lRowCount & ":B" & lRowCount).Value = ActiveSheet.Range("A" & lRowCount & ":B" & lRowCount).Value
lRowCount = lRowCount + 1
End If
Next
End Sub
PS:如果您有任何问题,请告诉我。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句