VBA以渐变方式填充气泡图并更改';梯度';到0

VBA以渐变方式填充气泡图并更改';梯度';到0,vba,excel,Vba,Excel,所以本质上这是一个解决办法——不知什么原因,在excel中创建气泡图时,不能在负气泡上使用“实心填充”(??)。因此,解决方法是使用渐变填充,然后将“渐变停止”上的滑块更改为0-本质上意味着现在没有渐变 我目前使用的VBA允许我使用“实心填充”将任何正气泡更改为我选择的颜色,但是,我需要做的是让它选择渐变填充,将两个渐变停止滑块都放在最右侧,选择蓝色表示正值,选择红色表示负值 感谢您的帮助-这是我目前拥有的VBA: Sub ColorPoints() Dim i As Integer

所以本质上这是一个解决办法——不知什么原因,在excel中创建气泡图时,不能在负气泡上使用“实心填充”(??)。因此,解决方法是使用渐变填充,然后将“渐变停止”上的滑块更改为0-本质上意味着现在没有渐变

我目前使用的VBA允许我使用“实心填充”将任何正气泡更改为我选择的颜色,但是,我需要做的是让它选择渐变填充,将两个渐变停止滑块都放在最右侧,选择蓝色表示正值,选择红色表示负值

感谢您的帮助-这是我目前拥有的VBA:

Sub ColorPoints()
    Dim i As Integer
    Dim myRange As Range
    Dim iColor As Integer
    Set myRange = ActiveSheet.Range("D4:D37")
    For i = 1 To myRange.Rows.Count
        Select Case WorksheetFunction.Index(myRange, i).Value
        Case -500 To 0
            iColor = 4 ' green
        Case Is > 0.0001
            iColor = 46 ' orange
        End Select
        ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1). _
        Points(i).Interior.ColorIndex = iColor
    Next
End Sub
下面是宏记录器在我手动记录所需结果时吐出的代码。我很难理解如何将此代码合并到现有代码中

ActiveSheet.ChartObjects("Chart 1").Activate 
ActiveChart.SeriesCollection(1).Select 
ActiveChart.SeriesCollection(1).Points(11).Select 
With Selection.Format.Fill 
    .Visible = msoTrue 
    .ForeColor.ObjectThemeColor = msoThemeColorAccent1 
    .ForeColor.TintAndShade = 0.3399999738 
    .ForeColor.Brightness = 0 
    .BackColor.ObjectThemeColor = msoThemeColorAccent1 
    .BackColor.TintAndShade = 0.7649999857 
    .BackColor.Brightness = 0 
    .TwoColorGradient msoGradientHorizontal, 1 
End With 
Selection.Format.Fill.Visible = msoTrue

宏记录器
打开并查看结果代码时,您是否尝试过这样做。这可能是解决你的问题最快(也是最自给自足的方式)。是的,我试过了。不幸的是,我无法确定在我当前的代码中需要更改哪些部分来解释所有这些更改-每次我尝试代码时,代码都会冻结。什么版本的Excel?我在2013年没有看到这个问题。你能发布宏记录器制作的代码(或者至少是改变气泡图上梯度的相关部分)吗?谢谢Scott,我一直在努力解决这个问题!