【发布时间】:2018-06-15 11:02:03
【问题描述】:
背景:我已经使用“条件”格式以浅红色突出显示每行中的 10 个最低值。
现在,我正在尝试编写一个代码,在每一行中搜索红色标记的单元格,并将它们的名称从标题行复制到新工作表中。
我的目标如下:在每一行中搜索红色单元格并将名称(在标题中)复制到另一张表(=结果表)中的同一行。这将产生一个包含 11 列的结果表:第一列是日期,该行中接下来的 10 列是该日期最低值的名称。
这是我到目前为止的代码,但它不起作用:
Sub CopyReds()
Dim i As Long, j As Long
Dim sPrice As Worksheet
Dim sResult As Worksheet
Set sPrice = Sheets("Prices")
Set sResult = Sheets("Result")
i = 2
For j = 2 To 217
Do Until i = 1086
If sPrice.Cells(j, i).Offset(j, 0).Interior.Color = 13551615 Then
sPrice.Cells(j, i).Copy Destination:=sResult.Cells(2, 2).Offset(j, 1)
End If
Loop
Next j
End Sub
更新:截图工作表
更新 2:截图结果示例
【问题讨论】:
-
你为什么每次都在循环中推进 Cells(j, I) 以及 offset(j, 0) ?
-
因为我认为通过抵消我会通过下一行? (对 vba 相当陌生)
-
你是,但你已经用 Cells(j, i) 遍历行,所以现在你做了两次
-
你建议我编辑什么?偏移部分还是单元格?
-
有点太长了,为了清楚一点我写下来