【问题标题】:VBA excel, fill every other executed row with a colorVBA excel,用颜色填充每个其他执行的行
【发布时间】:2016-03-09 16:09:16
【问题描述】:

我的这部分代码有问题。到目前为止它是正确的,但我需要用颜色填充每隔一行,并且所有行都有边框

完整代码的目的:每次用户按下添加项目按钮时,程序都会运行,并将数据行添加到表格的下一行。

If IsNumeric(Quantity) And Quantity >= 1 Then
  While Not IsEmpty(Range("I12").Offset(i, 0))
    i = i + 1
  Wend
  Range("G13").Offset(i - 1, 0).Value = item_no
  Range("H13").Offset(i - 1, 0).Value = itemDescription
  Range("I13").Offset(i - 1, 0).Value = Quantity
  Range("J13").Offset(i - 1, 0).Select
  Selection.Offset(0, 0) = Quantity * itemValue
Else:
  Quantity = False Or Quantity = vbCancel
  QtyError = MsgBox("Please enter a valid purchase quantity!", _
        vbCritical, "Incorrect Purchase Quantity")
End If

【问题讨论】:

  • 这样格式化表格并要求Excel用.ListObjects.Add(xlSrcRange, Range("I12:I" & 12 + i),, xlYes).Name = "YourTableName"进行格式化不是更容易吗?或者,您也可以使用条件格式,使用公式来确定带有=mod(row(), 2) 的单元格格式。即使在 Office 2007+ 之前,条件格式也允许您更改背景颜色和边框线。
  • 我不知道该怎么做,我是一名学生,为了课堂作业做这件事。我不确定如何将 i 合并到 =mod(row(), 2) 中。

标签: vba loops if-statement row


【解决方案1】:

根据您的评论,我正在使用条件格式发布解决方案:

  1. 选择要设置格式的单元格。
  2. 从菜单中选择条件格式。
  3. 点击“使用公式确定要格式化的单元格”
  4. 输入我上面贴的公式=mod(row(), 2)
  5. 选择所需的格式并点击 OK 确认。

注意,如果您使用 Excel 宏记录器记录您的操作,那么您也可以将 VBA 代码合并到您的程序中。

【讨论】:

  • 我有一个表,添加用户输入的项目,每次用户输入项目编号时,都会将新的原始数据添加到表中,依此类推。我正在尝试将添加到表格中的所有其他行设为黄色
  • 此解决方案使每隔一行变为蓝色。您当然可以将其更改为黄色。
猜你喜欢
  • 2015-10-07
  • 2023-02-04
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 2017-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多