虽然对于VBA和Excel来说,我是一个总的新手,而不是一般的编程。似乎我有相当长的一段时间试图破译VBA。Excel宏:循环并追加
我想要做的是通过列中未知数量的行进行循环,然后如果它包含特定的首字母缩写词,它将检查不同列中的同一行,它将根据第二个字段追加两个字符串中的一个细胞的内容。这段代码似乎不起作用,但也许它将有助于阐明我所得到的结果。
Sub AppendMacro()
'
'Append Macro
'Keyboard Shortcut: Ctrl+l
'
Dim c As Range
For Each c In Range("S:S")
If c.Value = "USAA" Or c.Value = "U.S.A.A" Then
ActiveCell.Offset(0, 2).Select
If ActiveCell.Value = "AM" Then
ActiveCell.Value = ActiveCell.Value & "8-10"
End If
End If
Next c
End Sub
我知道的一件事是,单元格的值并不完全是USAA或U.S.A.A,而是包含那些字符集。另外,我确信我误解了ActiveCell的工作原理,但如果有任何事情会让我变得直白,那么你会成为你们的。
很好的代码!如果我可以提出这个建议,我最近注意到,当使用Instr时,检查不等式的速度比值大于0的速度要快,因此您可以使用“<> 0”而不是“> 0”进行轻微的速度提升。当然,在大量值上使用代码时,它确实会有所作为。 – aevanko
并且在第二行中添加.SpecialCells(xlCellTypeConstants)将避免循环遍历列的空单元格,同时也节省了一些处理 –