sub test()
Dim ddda,ou
For ou = 2 To 61
If Sheets("Sheet3").Cells(ou, "bc") > 2.8 Then
ddda & ou = Format(Sheets("Sheet3").Cells(ou, "b").Row, "00") '紅色為錯誤
end if
next
end sub作者: lpk187 時間: 2015-4-26 22:59
變數不能這樣累加,你的方式可以利用陣列來表示
Sub test()
Dim ddda(2 To 61)
For ou = 2 To 61
If Sheets("Sheet3").Cells(ou, "bc") > 2.8 Then
ddda(ou) = Format(Sheets("Sheet3").Cells(ou, "b").Row, "00") '紅色為錯誤
End If
Next
End Sub作者: t8899 時間: 2015-4-27 15:03
本帖最後由 t8899 於 2015-4-27 15:20 編輯
回復 t8899
變數不能這樣累加,你的方式可以利用陣列來表示
Sub test()
Dim ddda(2 To 61)
F ...
lpk187 發表於 2015-4-27 07:18
Sub test()
Dim ddda(2 To 4)
For ou = 2 To 4
If Sheets("Sheet3").Cells(ou, "b") > 2.8 Then
ddd = ddd & Sheets("Sheet3").Cells(ou, "b").Row & ","
ddda(ou) = Format(Sheets("Sheet3").Cells(ou, "b").Row, "00")
End If
Next
Range("c65536").End(xlUp).Offset(1) = ddd
Dim pp
For pp = 1 To Len(ddd)
MsgBox Mid(ddd, pp, 2)
If Mid(ddd, pp, 2) = ddda(ou) Then '陣列索引超出範圍
Range("c65536").End(xlUp).Offset(0).Characters(pp, 2).Font.ColorIndex = 7
pp = pp + 1
End If
Next
End Sub [attach]20809[/attach]
目的,把 ddd 裡面 大於 2.8的字(row) 變色作者: t8899 時間: 2015-4-27 19:31
本帖最後由 t8899 於 2015-4-27 19:38 編輯
我試出來了, 不知有無較簡便(快速)的方法 ? 紅色部份又多跑一次??
目的,把 ddd 裡面 大於 2.8的字(row) 變色
Sub test()
Dim ddda(1 To 8)
For ou = 1 To 8
If Sheets("Sheet3").Cells(ou, "b") > 2.8 Then
ddd = ddd & Format(Sheets("Sheet3").Cells(ou, "b").Row, "00") & ","
ddda(ou) = Format(Sheets("Sheet3").Cells(ou, "b").Row, "00")
Else
ddd = ddd & Format(Sheets("Sheet3").Cells(ou, "b").Row, "00") & ","
End If
Next
Range("c65536").End(xlUp).Offset(1) = ddd
Dim pp
For pp = 1 To Len(ddd)
For ou = 1 To 8
If Mid(ddd, pp, 2) = ddda(ou) Then
Range("c65536").End(xlUp).Offset(0).Characters(pp, 2).Font.ColorIndex = 7
End If
Next
pp = pp + 2
Next
End Sub [attach]20812[/attach]