2017-07-11 106 views
1

我是VBA中的begginer,正在寻找解决方案来检查表中的某些内容。我想创建一个函数,告诉某个列(范围)中的单元格是否只有当标题列(范围)中的单元格等于某个时才是空的。我尝试了isempty和vlookup的组合,但没有奏效。 我希望描述清楚,无论如何,我附上了一个简单的问题表。先谢谢你! enter image description here表中的交叉引用

+0

哪里是附件? – user1

+0

所以你想检查范围“B1:E2”是否为空,如果是,你想做什么? – user1

回答

0

不知道我明白你的问题100%,但允许首先我想我的理解,并与下面开始:

Sub isitEmpty() 

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

End Sub 

你要什么做的,如果该细胞是/不是空?

0

下面的代码可与以下假设:

  1. Project Type列在Column ACell A4
  2. A,B,C,D类别开始会有所不同,但总会有标题中Row 3
  3. 您要参与Project TypeY所示,列在最后一列后面的列中,标题为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 
    

参考文献见图像按你的形象。

enter image description here