You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA循环处理筛选数据自动生成会计分录技术咨询

实现代码

' 主控制过程,所有ID的遍历调度在这里完成
Sub GenerateAllAccountEntries()
    Dim societyIDs As Variant
    Dim i As Integer
    ' 在这里填写所有需要处理的society ID,每月调整仅修改这一行即可
    societyIDs = Array("FR520", "FR240", "FR020")
    
    Sheets("IML").Select ' 提前选中IML表,避免重复切换
    ' 遍历所有ID执行处理逻辑
    For i = LBound(societyIDs) To UBound(societyIDs)
        Call Iml_ProcessID(societyIDs(i))
        Call Iml_ProcessID_TVA(societyIDs(i))
    Next i
    ' 处理完成后关闭筛选
    Sheets("DETAIL MAG").AutoFilterMode = False
End Sub

' 通用ID处理子过程,对应原有Iml_FR520逻辑
Sub Iml_ProcessID(societyID As String)
    'Déclaration des variables
    Dim dataRange As Range
    Dim sumAmount As Double
    Dim DernLigne As Double
    
    DernLigne = Sheets("DETAIL MAG").Range("A" & Rows.Count).End(xlUp).Row + 1 'last row
    Set dataRange = Sheets("DETAIL MAG").Range("A1").CurrentRegion 'setting whole range of data
    Sheets("DETAIL MAG").AutoFilterMode = False 'turning off all filters
    dataRange.AutoFilter Field:=12, Criteria1:=societyID 'filtering data
    sumAmount = Application.WorksheetFunction.Sum(Sheets("DETAIL MAG").Range("R1:R" & DernLigne).SpecialCells(xlCellTypeVisible)) 'summing filtered data
    
    ' Variable pour trouver la dernière ligne
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row + 1
    
    ' Insérer valeur societyID en A
    Range("A" & DernLigne).Value = societyID
    Range("A" & DernLigne).Interior.Color = 65535
    
    ' Insérer Montant HT en G
    Range("G" & DernLigne).Value = sumAmount
    Range("G" & DernLigne).Interior.Color = 65535
    
    ' Insérér valeur AQ SOLDE en I
    Range("I" & DernLigne).Value = "AQ SOLDE"
    Range("I" & DernLigne).Interior.Color = 65535
End Sub

' 通用ID的TVA处理子过程,对应原有Iml_FR520_TVA逻辑
Sub Iml_ProcessID_TVA(societyID As String)
    Dim dataRange As Range
    Dim sumTVA As Double
    Dim DernLigne1 As Double
    
    DernLigne1 = Sheets("DETAIL MAG").Range("A" & Rows.Count).End(xlUp).Row + 1 'last row
    Set dataRange = Sheets("DETAIL MAG").Range("A1").CurrentRegion 'setting whole range of data
    Sheets("DETAIL MAG").AutoFilterMode = False 'turning off all filters
    dataRange.AutoFilter Field:=12, Criteria1:=societyID 'filtering data
    sumTVA = Application.WorksheetFunction.Sum(Sheets("DETAIL MAG").Range("S1:S" & DernLigne1).SpecialCells(xlCellTypeVisible)) 'summing filtered data
    
    ' Variable pour trouver la dernière ligne
    Dim DernLigne As Double
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row + 1

    ' Insérer Montant TVA en G
    Range("G" & DernLigne).Value = sumTVA
    
    ' Insérér valeur TVA FIDELITE 20% en I
    Range("I" & DernLigne).Value = "TVA FIDELITE 20 %"
    
    ' Insérer Montant HT en P
    Range("P" & DernLigne).FormulaR1C1 = "=R[-1]C[-9]"
    
    ' Insérer Montant HT en Q
    Range("Q" & DernLigne).FormulaR1C1 = "=RC[-1]"
End Sub

使用说明

  • 每月需要调整处理的society ID时,仅修改GenerateAllAccountEntries过程中societyIDs = Array("FR520", "FR240", "FR020")这一行的数组内容即可,支持增删改任意ID
  • 所有原有业务规则(求和列、单元格格式、固定值填写)完全和原有代码一致,没有做任何变更
  • 运行时直接执行GenerateAllAccountEntries主过程即可自动完成所有ID的会计分录生成

内容的提问来源于stack exchange,提问作者Larow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:05