另开贴,请问如何实现这样的功能
excel中第1、2列为日期,要求第二列的日期减第一列的日期后,假如相差n个月(以月份作为基数),则从第二列开始向后移动n列)颜色变为红色并写上“下一次”的字样,代码如下
Sub test()
Dim lRow As Long, lRowCount As Long
lRowCount = Cells(Rows.Count, 1).End(xlUp).Row
dim rowIndex as integer
For lRow = 1 To lRowCount
If Cells(lRow, 2) - Cells(lRow, 1) < 90 Then
Cells(lRow, 4).Interior.Color = vbRed
rowIndex =Month(Cells(lRow, 2) - Cells(lRow, 1))
Cells(lRow, 2).Offset(0, rowIndex ).Interior.Color = vbRed
Cells(lRow, 2).Offset(0, rowIndex ).Value = "下一次"
End If
Next lRow
End Sub
需实现的功能:
在人工修改了列的时间后,再次打开excel文件,这时按照新时间的计算,单元格(红色)的位置也发生了变化,但上一次的单元格(红色)如何清除,确保这一行中只有一个单元格是红色的
[解决办法]
简单点 Color = vbRed之前 把所有颜色清空
[解决办法]
Private Sub test() Dim lRow As Long, lRowCount As Long lRowCount = Cells(Rows.Count, 1).End(xlUp).row Cells.Interior.ColorIndex = xlNone Dim rowIndex As Integer For lRow = 2 To lRowCount rowIndex = 12 * (Year(Cells(lRow, 2)) - Year(Cells(lRow, 1))) _ + Month(Cells(lRow, 2)) - Month(Cells(lRow, 1)) Range(Cells(lRow, 3), Cells(lRow, 256)).Clear Range(Cells(lRow, 3), Cells(lRow, 256)).Interior.Color = xlNone Cells(lRow, 2).Offset(0, rowIndex).Interior.Color = vbRed Cells(lRow, 2).Offset(0, rowIndex).Value = "下一次" Next lRowEnd Sub