Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在Excel中创建报告,将空单元格标记为;";和任何输入为“的单元格”;“是”;对于一系列的细胞?_Vba_Excel_Report_Formula - Fatal编程技术网

Vba 如何在Excel中创建报告,将空单元格标记为;";和任何输入为“的单元格”;“是”;对于一系列的细胞?

Vba 如何在Excel中创建报告,将空单元格标记为;";和任何输入为“的单元格”;“是”;对于一系列的细胞?,vba,excel,report,formula,Vba,Excel,Report,Formula,例如,假设我有五列和五行数据。A列都是姓名,剩下的四列,从B到E,包括用户生成的关于每个人的数据 我想创建一个报告,这样我就可以保留name列,但对于其余的列,只需根据字段是否留空、基本上是填写此类别的人还是没有填写其他类别的人等自动执行“y”或“n”输出 基本上要扭转这一局面: [人名a][填充单元格][填充单元格][空白单元格][空白单元格][填充单元格] 进入: [个人a][y][y][n][n][y] 仅在Excel本身中就可以做到这一点吗?任何帮助都将不胜感激 选择工作表并运行此宏:

例如,假设我有五列和五行数据。A列都是姓名,剩下的四列,从B到E,包括用户生成的关于每个人的数据

我想创建一个报告,这样我就可以保留
name
列,但对于其余的列,只需根据字段是否留空、基本上是填写此类别的人还是没有填写其他类别的人等自动执行“y”或“n”输出

基本上要扭转这一局面:

[人名a][填充单元格][填充单元格][空白单元格][空白单元格][填充单元格]

进入:

[个人a][y][y][n][n][y]


仅在Excel本身中就可以做到这一点吗?任何帮助都将不胜感激

选择工作表并运行此宏:

Sub Yes_No()
    Dim RR As Range, N As Long
    N = Cells(Rows.Count, 1).End(xlUp).Row
    Set RR = Range("B1:E" & N)
    For Each r In RR
        If r.Value = "" Then
            r.Value = "no"
        Else
            r.Value = "yes"
        End If
    Next r
End Sub
Sub Yes_No()
    Dim RR As Range, N As Long, rs As Worksheet, _
        ady As String
    N = Cells(Rows.Count, 1).End(xlUp).Row
    Set RR = Range("B1:E" & N)
    Set rs = Sheets("Report")
    For Each r In RR
        ady = r.Address
        If r.Value = "" Then
            rs.Range(ady).Value = "no"
        Else
            rs.Range(ady).Value = "yes"
        End If
    Next r
End Sub
编辑#1

要在单独的工作表上生成报告,请创建名为报告的新工作表,然后选择原始工作表并运行此宏:

Sub Yes_No()
    Dim RR As Range, N As Long
    N = Cells(Rows.Count, 1).End(xlUp).Row
    Set RR = Range("B1:E" & N)
    For Each r In RR
        If r.Value = "" Then
            r.Value = "no"
        Else
            r.Value = "yes"
        End If
    Next r
End Sub
Sub Yes_No()
    Dim RR As Range, N As Long, rs As Worksheet, _
        ady As String
    N = Cells(Rows.Count, 1).End(xlUp).Row
    Set RR = Range("B1:E" & N)
    Set rs = Sheets("Report")
    For Each r In RR
        ady = r.Address
        If r.Value = "" Then
            rs.Range(ady).Value = "no"
        Else
            rs.Range(ady).Value = "yes"
        End If
    Next r
End Sub

谢谢作为简短的跟进,是否有一种方法可以作为单独的报告而不是编辑当前工作表?请参见编辑#1________________