我真的开始学习如何使用VBA而且我已经卡住了。我所拥有的是一张Excel表格,其中包含大量库存,在该行的所有列上都有红色单元格,我想要打印这些列。
换句话说,如果单元格颜色为红色,我最终希望它获取该列的第一个单元格(标题),并将该值附加到字符串连接中。而且我希望它为那一行中的所有红细胞做到这一点。例如,如果一行中的红色单元格位于“重置”和“时间”列中,我希望该行中的最后一列显示“重置:20,时间:30”。
所以我开始的只是尝试逐个单元格逐行进行,以便我可以计算红色单元格的数量并尝试将它们放在每一行的末尾。搞砸了,我注意到下面的代码会自动将x放在相邻的单元格中,因为它会增加而不是像我预期的那样保持一个单元格。我目前也有单元格(行,60)因为列总是相同的,但它不喜欢我使用变量行。
Sub CellColorRed()
'
' CellColorRed Macro
' Take headers if color is red
'
' Keyboard Shortcut: Ctrl+n
'
Dim rng As Range, cell As Range, row As Range, x As Integer
Set rng = Range("F2:BG9")
For Each row In rng.Rows
For Each cell In rng.Cells
x = 0
If cell.Interior.ColorIndex = 3 Then
x = x + 1
End If
cell(row, 60) = x
Next cell
Next row
End Sub
答案 0 :(得分:0)
Sub GetRedCells()
Dim rng As Range, cell As Range, row As Range, x As Integer
Dim msg as String, sep as string
Set rng = Range("F2:BG9")
For Each row In rng.Rows
msg=""
sep=""
For Each cell In row.Cells
If cell.Interior.ColorIndex = 3 Then
msg = msg & sep & Cells(1, cell.Column).Value & _
": " & cell.Value
sep = ", "
End If
Next cell
row.cells(60) = msg
Next row
End Sub