当我重新筛选单元格时,你知道如何防止subtotal函数改变吗?
' Variable pour trouver la dernière ligne
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row + 1
' Insérer Montant HT en G
Sheets("DETAIL MAG").Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$U$17874").AutoFilter Field:=12, Criteria1:="**FR240**" 'Filter sur FR240
Sheets("IML").Select
Range("G" & DernLigne).FormulaR1C1 = "=SUBTOTAL(9,'DETAIL MAG'!C[11])"当我对下一行使用另一个过滤器执行相同的功能时,它会改变我之前的单元格。
' Variable pour trouver la dernière ligne
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row + 1
' Insérer Montant HT en G
Sheets("DETAIL MAG").Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$U$17874").AutoFilter Field:=12, Criteria1:="**FR0S0**" 'Filter sur FR0S0
Sheets("IML").Select
Range("G" & DernLigne).FormulaR1C1 = "=SUBTOTAL(9,'DETAIL MAG'!C[11])"也许另一个函数会更好?
发布于 2021-11-10 13:09:04
您必须将过滤后的数据总和以dim格式存储,然后将其粘贴到range/cell中您想要的位置:)。
对于第一次迭代/函数/部分,它将是
Dim FR240 As Range
Dim SUM_FR240 As Long
Dim DernLigne As Long
DernLigne = Sheets("DETAIL MAG").Range("A" & Rows.Count).End(xlUp).Row 'last row
Set FR240 = Sheets("DETAIL MAG").Range("A1:U17874") 'setting whole range of data
Sheets("DETAIL MAG").AutoFilterMode = False 'turning off all filters
FR240.AutoFilter field:=12, Criteria1:="**FR240**" 'filtering data
SUM_FR240 = Application.WorksheetFunction.Sum(Sheets("DETAIL MAG").Range("C2:C" & DernLigne).SpecialCells(xlCellTypeVisible)) 'summing filtered data如果你想把它放在单元格中,那么只需使用Sheets("IML").Cells("G1") = SUM_FR240或其他。
对第二个函数执行相同的操作,并将总和放在不同的单元格/区域中
发布于 2021-11-22 10:47:54
它工作得很好,但当我复制单元格中的过滤数据时,它会对数字进行四舍五入。你知道怎么停止舍入数字吗?
Dim FR520 As Range
Dim SUM_FR520 As Long
Dim DernLigne As Long DernLigne = Sheets("DETAIL MAG").Range("A" & Rows.Count).End(xlUp).Row + 1 'last row
Set FR520 = Sheets("DETAIL MAG").Range("A1:U17874") 'setting whole range of data
Sheets("DETAIL MAG").AutoFilterMode = False 'turning off all filters
FR520.AutoFilter field:=12, Criteria1:="FR520" 'filtering data SUM_FR520 = Application.WorksheetFunction.Sum(Sheets("DETAIL MAG").Range("R1:R" & DernLigne).SpecialCells(xlCellTypeVisible)) 'summing filtered data
Range("G" & DernLigne).Value = SUM_FR520在单元格G中,我有"4367,00“而不是"4367,24”
https://stackoverflow.com/questions/69912102
复制相似问题