在表中交叉引用

我在VBA中成长,并寻找一个解决scheme来检查表中的东西。 我想创build一个函数,告诉某个列(范围)中的单元格是否只有在标题列(范围)中的单元格等于某些内容时才是空的。 我尝试了isempty和vlookup的组合,但没有奏效。 我希望说明清楚,无论如何,我附上了一个简化的表格与问题。 先谢谢你! 在这里input图像说明

不知道我已经理解你的问题100%,但让我开始我认为我了解,并从下面开始:

Sub isitEmpty() With Sheets("Sheet1") If IsEmpty(.Range("B1:E2")).Value Then 'do something Else 'do something End If End With End Sub 

如果单元格不是空的,你想要做什么?

以下代码适用于以下假设:

  1. Project TypeColumn A Cell A4中列出,从Cell A4开始
  2. A,B,C,D类别可能有所不同,但在Row 3总是有标题
  3. 您希望作为Y参与的Project Type列在最后一列标题为A,B,C,D后面的列中。 所以按照你的形象它的Column F

     Sub Demo() Dim ws As Worksheet Dim lRProject As Long, lRMatch As Long, lastColumn As Long, i As Long Dim rngProject As Range, celPro As Range, rngMatch As Range, celMatch As Range Set ws = ThisWorkbook.Sheets("Sheet5") 'change to your sheet With ws lastColumn = .Cells(3, Columns.count).End(xlToLeft).Column 'gives last column with A,B,C,D lRProject = .Cells(.Rows.count, "A").End(xlUp).Row 'last row in Column A lRMatch = .Cells(.Rows.count, lastColumn + 1).End(xlUp).Row 'last row in Column F Set rngMatch = .Range(.Cells(1, lastColumn + 1), .Cells(lRMatch, lastColumn + 1)) Set rngProject = .Range("A4:A" & lRProject) For Each celMatch In rngMatch For Each celPro In rngProject For i = 2 To lastColumn If celPro.Value = celMatch Then If .Cells(celPro.Row, i) = "X" Then .Cells(celMatch.Row, i) = "Y" End If End If Next i Next celPro Next celMatch End With End Sub 

看图像以供参考。

在这里输入图像说明