【问题标题】:VBA : While and If then Do functionsVBA:While 和 If then Do 函数
【发布时间】:2021-05-28 17:07:29
【问题描述】:

我想将我的 ComboBox 中编码为“ & strQ & ”的值与“6 - Liste des Partenaires”页上第一列中的值进行比较。范围“Chapeau_Partenaire”在 A1 中。

我是 VBA 的新手,我不知道如何编写函数 If then Do。它在我的代码中以红色显示。非常感谢您的帮助。

Public Sub INFO_PROTO(ByRef strQ As String)
Num_Ligne = Range("Chapeau_Partenaire").Row + 1
While Worksheets("6 - Liste des Partenaires").Cells(Num_Ligne, Range("Chapeau_Partenaire").Column) <> ""
if " & strQ & " = Worksheets("6 - Liste des Partenaires").Cells(Num_Ligne, Range("Chapeau_Partenaire").Column)
Then Do
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Origine") = "1"
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_Perf_Contrat_et_Orient") = "1"
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Perf_An") = "1"
    Else
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Origine") = "1"
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_Perf_Contrat_et_Orient") = "0"
Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Perf_An") = "0"
    End If
    Num_Ligne = Num_Ligne + 1
    Wend
End Sub

【问题讨论】:

    标签: vba


    【解决方案1】:

    你不需要引号,你也不需要做。

    Public Sub INFO_PROTO(ByRef strQ As String)
    Dim Num_Ligne As Long
    
        Num_Ligne = Range("Chapeau_Partenaire").Row + 1
        
        While Worksheets("6 - Liste des Partenaires").Cells(Num_Ligne, Range("Chapeau_Partenaire").Column) <> ""
            If strQ = Worksheets("6 - Liste des Partenaires").Cells(Num_Ligne, Range("Chapeau_Partenaire").Column) Then
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Origine") = "1"
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_Perf_Contrat_et_Orient") = "1"
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Perf_An") = "1"
            Else
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Origine") = "1"
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_Perf_Contrat_et_Orient") = "0"
                Worksheets("1 - Feuille de Suivi Commercial").Range("Calcul_CMA_Perf_An") = "0"
            End If
            Num_Ligne = Num_Ligne + 1
        Wend
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多