![](/img/trans.png)
[英]VBA: Deleting an excel row based on first occurrence of a value in a column
[英]Excel VBA — Find first occurrence of any value in column A, then insert value of column B into column C (same row)
我正在尝试为每周的琐事编写VBA脚本。 这是我的数据:
我运行一个宏,清除了C列的值。然后,我必须在A列中找到每个唯一值的第一个匹配项。当我找到第一个匹配项时,我在C列的同一行中写“ = Column B”仅用于那一行。 基本上,我想说的是:“ A4是唯一值的首次出现;因此C4 = B4。” 我无法执行简单的IF()函数并将其向下拖动,因为C列的其余部分需要保持真正空白(由IF(NOT(ISBLANK))函数引用)。
我是VBA的新手,但不幸的是,我记录了所做的事情,但并没有抓住我的实际意图。 这是宏,似乎效率不高:
Sub Macro1()
'
' Macro1 Macro
'
Range("C8").Select
Application.Left = 3591.25
Application.Top = 268
Windows("Copy of OPS_schedule_6.xlsm").Activate
Application.Left = 3451.75
Application.Top = 163
Windows("Book1").Activate
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$B$9").AutoFilter Field:=1, Criteria1:="Alpha"
Range("C1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("C2").Select
ActiveSheet.Range("$A$1:$B$9").AutoFilter Field:=1, Criteria1:="Bravo"
Range("C4").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("C5").Select
ActiveSheet.Range("$A$1:$B$9").AutoFilter Field:=1, Criteria1:="Charlie"
Range("C8").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("C9").Select
End Sub
如果您使用的公式是
=IF(COUNTIF(A$1:A1,A1)=1,B1,"del")
您可以使用“查找并选择”或由于已标记了此VBA而使用以下命令清除del
:
Selection.SpecialCells(xlCellTypeFormulas, 2).ClearContents
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.