VBA条件格式数据栏“百分比/进度”

时间:2018-06-28 13:52:13

标签: excel vba conditional-formatting excel-2016

基本上,我正在尝试这样做:

https://imgur.com/a/OEhsWaS

(三张图片)

因此,我记录了一个宏(目的是稍后清除它!)我希望单元格数据栏实质上是单元格中百分比的大小。

我收到这个作为录音。

Range("H439:H445").Select
Selection.FormatConditions.AddDatabar
Selection.FormatConditions(Selection.FormatConditions.Count).ShowValue = True
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
    .MinPoint.Modify newtype:=xlConditionValueLowestValue
    .MaxPoint.Modify newtype:=xlConditionValueHighestValue
End With
With Selection.FormatConditions(1).BarColor
    .Color = 49407
    .TintAndShade = 0
End With
Selection.FormatConditions(1).BarFillType = xlDataBarFillSolid
Selection.FormatConditions(1).Direction = xlContext
Selection.FormatConditions(1).NegativeBarFormat.ColorType = xlDataBarColor
Selection.FormatConditions(1).BarBorder.Type = xlDataBarBorderNone
With Selection.FormatConditions(1).NegativeBarFormat.Color
    .Color = 255
    .TintAndShade = 0
End With

我从录音中多次收到此代码,但是在寻找答案时,我意识到这是一个excel错误或问题/错误。但是我觉得我的问题是 xlConditionValueHighestValue (和最低)部分。记录的代码的另一部分显示了xlAutomaticMax / xlAutomaticMin的位置。

当我运行代码的一部分(发布的部分)时,它不会根据我输入的最大值/最小值(1、0)填充。取而代之的是,它采用最高的数字(在本例中为33%)并完全填充该单元格。 当我将该部分更改为:

With Selection.FormatConditions(1)
       .MinPoint.Modify newtype:=0
       .MaxPoint.Modify newtype:=1
    End With   

我得到一个 “运行时错误'1004': 应用程序定义或对象定义的错误” 突出显示

.MaxPoint.Modify newtype:=1

行,所以它喜欢0行。但是,我不知道如何使其正确执行所需的正确编码过程,并且在使用maxpoint或minpoint公式行的论坛上找不到任何内容,否则我会尝试复制它们的表示法。有人知道如何提供帮助吗?

1 个答案:

答案 0 :(得分:1)

请尝试:

$amount = "436,97 €"

或者,您可能会坚持使用现有的内容,但要包含一个值为 With Selection.FormatConditions(1) .MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0 .MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=1 End With 的隐藏行。