Excel VBA根据先前单元格的数据在单元格中显示文本

时间:2018-10-16 14:19:55

标签: excel vba excel-vba

请耐心等待,因为我是VBA的新手。请参阅所附图像。

enter image description here   我正在根据前5个单元格是否为空白,从单元格G2开始寻找用“是”或“否”填充“摘要”表中单元格的代码。请注意,“摘要”表中的数据是从“原始数据”表中提取的。

例如,雇员1:“摘要”表上的单元格G2将显示“否”,因为“原始数据”!B2:F2范围内的所有单元格都不为空。与H2相同,因为“原始数据”!C2:G2中的所有单元格都不为空。 I2将显示“是”,因为在“原始数据”范围内有一个空白单元格!D2:H2。

对于在A列中有数据的每一行,此操作都会继续。

预先感谢您,如果我对它的解释不够充分,请告诉我, 凯文

2 个答案:

答案 0 :(得分:0)

在摘要表的G2中输入以下公式:

=IF(COUNT('Raw Data'!B2:F2)=5,"No","Yes")

然后您可以根据需要将其拖到右侧(此后向下)。

这是一个小的修改,不对空行显示“是”:

=IF('Raw Data'!B2="","",IF(COUNT('Raw Data'!B2:F2)=5,"No","Yes"))

答案 1 :(得分:0)

Raw Data Tab

Summary tab

已经过测试,现在一切都可以正常工作,不确定是否仍然需要答案,但是“摘要”选项卡已应用了一些条件格式,如果是,则明显突出绿色,如果不是,则突出红色。数据标签我输入了随机值,但是除非有我不知道的东西,否则应该没关系。

Sub Yes_No()


Dim lastrow As Long
Dim lastcol As Long
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet


Set wb = ActiveWorkbook
Set ws = wb.Sheets("Summary")
Set ws2 = wb.Sheets("Raw Data")
lastcol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
lastrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

 For i = 2 To lastrow
   For j = 7 To lastcol


  If ws2.Cells(i, j - 1) <> "" And _
     ws2.Cells(i, j - 2) <> "" And _
     ws2.Cells(i, j - 3) <> "" And _
     ws2.Cells(i, j - 4) <> "" And _
     ws2.Cells(i, j - 5) <> "" Then

       ws.Cells(i, j).Value = "Yes"

  Else

       ws.Cells(i, j).Value = "No"


 End If


   Next j
 Next i





End Sub