【问题标题】:Excel Macro VBA basic comparison - but unable to fix errorExcel 宏 VBA 基本比较 - 但无法修复错误
【发布时间】:2016-10-12 16:24:50
【问题描述】:

我有一组行和列范围是 A:AC 并且行数可以是任何值

修复工作表和范围并使用此方法计算 RowCount 和 ColumnCount

Dim sheet As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Set sheet = ActiveWorkbook.Worksheets(1)
LastRow = sheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastColumn = sheet.Range("A1").CurrentRegion.Columns.Count
Set selectedRange = Range("A1:AC" & LastRow)
  • 第一个条件:

我正在尝试将 F 列与 AC 进行比较,应该是 0 或 1。发现通过使用

For i =1 To LastRow
   For j = 6 To LastColumn
      If Cells(i, j).Value <> 0 And Cells(i, j) <> 1 Then
           Cells(i, j).Interior.Color = vbGreen
      End If
      If Cells(i, j).Value > 1 Then
           Cells(i, j).Interior.Color = vbRed
      End If
   Next j
Next i
  • 第二个条件

在这些列中,我应该只有 一列 应该有 1 并保持为 0

我试过了,每次运行都会抛出不同的错误代码

  • 第三个条件

从 A:AC 中查找重复行

我需要突出显示有错误的整个

But I have done which Column has error 与此声明 Cells(i, j).Interior.Color = vbRed

虽然很简单,但我无法弄清楚逻辑,因为我对 Excel VBA 完全陌生。

【问题讨论】:

  • range("blah").entirerow 整行开始
  • (a) 请注意,Set selectedRange = Range("A1:AC" &amp; LastRow) 是在活动工作表上选择一个范围,而不是在您的其他语句正在访问的工作表上。您可能想说Set selectedRange = sheet.Range("A1:AC" &amp; LastRow) - 但您似乎没有在其他地方使用 selectedRange 所以它可能没关系。 (b) 同样,“第一个条件”块中对 Cells 的所有引用都在访问活动工作表 - 您可能需要 sheet.Cells
  • 您可能需要添加“之前”和“之后”场景图片

标签: vba excel


【解决方案1】:

对于您的第一个条件:

For i = 1 To LastRow
    For j = 6 To LastColumn
        Select Case Cells(i, j).Value
            Case 0
                Cells(i, j).EntireRow.Interior.Color = vbGreen
            Case 1
                Cells(i, j).EntireRow.Interior.Color = vbRed

            Case Else
                Cells(i, j) = "Whetever"
        End Select
        if range("A" & i).value = 1 and range("AC" & i).value = 1 then
            Cells(i, j).EntireRow.Interior.Color = vbYellow
        end if
   Next j
Next i

现在添加了第 2 点。对于删除重复项,这取决于您的数据,但问题已在此处提出:

How to look for repeated rows and then delete one of them? requires VBA

【讨论】:

  • 我做了第一个条件,但在第一个条件中,我还想添加第二个条件,而不是添加另一组 for 循环。
猜你喜欢
  • 2015-06-01
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2019-03-16
  • 2021-07-07
相关资源
最近更新 更多