如何使整个工作表在excel中的数据栏中使用实心填充

时间:2015-05-21 15:43:46

标签: excel vba excel-vba

我的excel 2010(以及2013年)也有问题,我有一个页面 带有数据条的工作表,我已将它们设置为实心填充,但每次都是 我关闭并打开文档,它再次变为渐变,非常烦人(因为当它渐渐变成白色时,你无法真正看到进度,这与背景相同......)

检查了Office主页,但无法在任何提到的地方找到此问题。 还尝试了谷歌,只是发现了一些有类似问题的人,但没有解决方案。

为了演示的目的,我可以改变背景等。但是有趣的是,我想确保每次打开这个文件时都是实心填充。当它是实心填充时,它看起来很不错。

我看到有两种方法可以实现:

  1. 如果可以更改默认设置(因为我猜这是每次重新打开文件时会发生的事情)。试过谷歌,却无法找到它。

  2. 另一种方法是让VBA脚本显示"嘿,这个范围内的所有数据条,你应该有实心条和#34;。

  3. 我自己尝试了选项2,但由于我对VBA中的脚本编写起来很新,我没有成功,但看起来我的尝试是这样的:

    Private Sub Workbook_Open()
     dad = Range("A1:Z100")
     Dim b As Databar
     b = dad.FormatCondition.AddDatabar
     b.BarFillType = xlDataBarFillSolid
    
    End Sub
    

    但那不起作用,我想应该创建条形,然后在这些条上使用这些选项,但我已经有一个可能有200条的文档,看起来非常精细,除了它们失去固体选项。 而且由于它们依赖于不同的数字(数据条),我无法通过一条规则来统治它们所有的数据。 (条件格式化)。

    更新时间:2015-05-22

    通过以下代码

    管理以创建我喜欢的新数据库

    
    
    Sub TestDatabars()
    
        ' column B real values
        Dim B1rv As Databar
        Range("B6:B10, B14:B37,B42:B43").Select
        ' remove old settings (gradient fill)
        With Selection
            .FormatConditions(1).Delete
        End With
        ' add a new one
        Set B1rv = Selection.FormatConditions.AddDatabar
        
        With B1rv
            .BarFillType = xlDataBarFillSolid
        End With
        With B1rv.BarColor
            .Color = RGB(146, 208, 80)
        End With
        
        B1rv.MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=0
        B1rv.MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=Range("B1")
    
    end sub
    
    
    

    但我想如果我需要更改所有旧的数据库(大约100个数据条)或者是否有更常见的方法,问题仍然存在。

    将通过选择范围来测试一些事情,看看我是否已经编辑了那些。

1 个答案:

答案 0 :(得分:0)

试试这个:

Set b = dad.FormatCondition.AddDatabar

注意关键字Set - 您需要在分配对象时使用它。