首页 > 解决方案 > 该代码将计算名称出现在列中的次数,并将分析数据存储在不同表格中的日期

问题描述

我用建议和世界更新了代码,谢谢大家

但是,我还有另一个问题。我需要为一年中的每个月以及工作表上的所有名称(大约 20 个名称)执行此操作。

这样代码会很长,你有什么建议让它更自动化吗?

'''

Sub CountHSEcards()

Sub CountHSEcards()

Dim Sh As Worksheet
Dim Br As Worksheet
Set Sh = Sheets("Planilha1")
Set Br = Sheets("Brasil")

NultimaCelula = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row

For i = 1 To NultimaCelula

    If InStr(Sh.Range(CStr("AD" & i + 1)).Value, "Lucas") > 0 Then

        If Month(Sh.Range("AC" & i + 1).Value) = 1 Then
            Br.Range("C4") = Br.Range("C4").Value + 1
        End If

    End If

Next i

End Sub

''' 表:Planilha1

表:巴西

标签: excelvba

解决方案


谢谢大家,在评论的帮助下,代码运行良好

Sub CountHSEcards()

Dim Sh As Worksheet
Dim Br As Worksheet
Set Sh = Sheets("Banco De Dados")
Set Br = Sheets("Brasil")
Dim z As Integer
Dim h As Integer

NultimaCelula = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row

Br.Range("C4" & ":C1000") = Empty
z = 17
h = 16
For i = 1 To NultimaCelula

    For x = 1 To 12

        If InStr(Sh.Range(CStr("AD" & i + 1)).Value, "Andrea Ramos") > 0 Then

            If Month(Sh.Range("C" & i + 1).Value) = x Then
                Br.Range("C" & x + 3) = Br.Range("C" & x + 3).Value + 1
                Br.Range("C16").FormulaLocal = WorksheetFunction.Sum(Range("C4:C15"))
            End If

        End If

    Next x
Next i 

End Sub

推荐阅读