首页 > 解决方案 > 填充和替换和公式的问题

问题描述

ActiveSheet.Range("$A$1:$V$1023").AutoFilter Field:=4, Criteria1:= _
    "cancelled"
ActiveSheet.Range("$A$1:$V$1023").AutoFilter Field:=5, Criteria1:="1"


Cells.Find(What:="cancelled", After:=Range("A1"), LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Offset(0, 3) = "later"
Cells.Find(What:="cancelled", After:=Range("A1"), LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Offset(0, 3).Select

Selection.FillDown

这些是我的代码。然后我将其复制粘贴到另一个工作表中,“稍后”的更改消失了

Rows("1:1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste

标签: excelvba

解决方案


请注意.FillDown使用一系列单元格而不是单个单元格。

这应该工作

Sub test()

Dim Foundcell As Range

Set Foundcell = Cells.Find(What:="cancelled", After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Offset(0, 3)

Foundcell.Value = "later"


Range(Foundcell.Address, "D" & ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row).FillDown

End Sub

输出(这是否符合您的需求):

在此处输入图像描述

对于你刚刚添加的代码,最好避免 select

希望对您有所帮助,等待您的反馈


推荐阅读