[英]Comparing horizental cells with vertical cells on excel VBA
请明确说明-很抱歉,但是我的设置不允许我查看上传到该网站的图片,因此我看不到您的照片-您的代码建议您要针对100列检查“ A”列中的900行第1行中的列。是否正确。 如果列“ A”中的单元格与行1中的单元格之间存在匹配项,则您希望两者之间的结点单元格显示“ X”。 那是对的吗?
如果是这样,那么您的逻辑是正确的。 也许您的语法已关闭。 尝试这个。
Sub sdftgyhj()
Set c = ThisWorkbook.Worksheets("harnwire")
For j = 2 To 100 Step 1
For i = 2 To 900 Step 1
If c.Cells(i, 1).Value = c.Cells(1, j).Value Then
c.Cells(i, j).Value = "X"
Else
c.Cells(i, j).Value = " "
End If
Next i
Next j
End Sub
线
If c.Cells(i, 1).Value = c.Cells(1, j).Value Then
似乎不正确。 因为这会将A
列与第1行中的标题进行比较,所以此行基本上与
If c.Cells(i, "A").Value = c.Cells(1, j).Value Then
但是,基于图片,您似乎更感兴趣将另一列与标题进行比较。 因此,也许尝试这样的事情:
If c.Cells(i, "G").Value = c.Cells(1, j).Value Then
(或正确的列为准) 。
因此,将所有内容放在一起将是:
Option Explicit
Public Sub tmpSO()
Dim ws As Worksheet
Dim rowNumber As Long, columnNumber As Long
Set ws = ThisWorkbook.Worksheets("harnwire")
For columnNumber = 2 To 100
For rowNumber = 2 To 900
If c.Cells(rowNumber, "G").Value = c.Cells(1, columnNumber).Value Then
c.Cells(rowNumber, columnNumber).Value = "X"
Else
c.Cells(rowNumber, columnNumber).Value = vbNullString
End If
Next rowNumber
Next columnNumber
End Sub
以下代码解决了提供的注释:(1)开始与H
列中的标题进行比较,以及(2)如果由于两个单元格中的任何一个包含错误而无法比较两个单元格,则进行错误处理。
Option Explicit
Public Sub tmpSO()
Dim ws As Worksheet
Dim rowNumber As Long, columnNumber As Long
Set ws = ThisWorkbook.Worksheets("harnwire")
For columnNumber = 8 To 100
For rowNumber = 2 To 900
If IsError(c.Cells(rowNumber, "G").Value) Or IsError(c.Cells(1, columnNumber).Value) Then
c.Cells(rowNumber, columnNumber).Value = "err"
Else
If c.Cells(rowNumber, "G").Value = c.Cells(1, columnNumber).Value Then
c.Cells(rowNumber, columnNumber).Value = "X"
Else
c.Cells(rowNumber, columnNumber).Value = vbNullString
End If
End If
Next rowNumber
Next columnNumber
End Sub
让我知道这是否按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.