无法在Excel中获取命名范围

时间:2014-03-17 08:19:18

标签: excel vba excel-vba

我有一张工作表,第一张纸上有一张图表,显示了一个命名范围内的一些数据 命名范围如下所示:

  

= OFFSET(chart_data $ B $ 2,0,0,COUNTA(chart_data $ B:!$ B)-1)

其中chart_data是另一张表 我还有一个VBA脚本,应该将图表的颜色设置为与相应单元格的背景颜色相同。该脚本如下:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cht As ChartObject
Dim i As Integer
Dim vntValues As Variant
Dim s As String
Dim myseries As Series
Dim nRange As Range

    For Each cht In ActiveSheet.ChartObjects
        For Each myseries In cht.Chart.SeriesCollection

            If myseries.ChartType <> xlPie Then GoTo SkipNotPie
            s = Split(myseries.Formula, ",")(2)
            vntValues = myseries.Values                

            For i = 1 To UBound(vntValues)
                If Range(s).Cells(i).Interior.Color <> 16777215 Then
                    myseries.Points(i).Interior.Color = Range(s).Cells(i).Interior.Color
                End If
            Next i
SkipNotPie:
        Next myseries
    Next cht
End Sub

我的问题是,当我尝试评估Range(s)时,s =“report!values_list”,我得到了

  

运行时错误'1004':
  对象'_Worksheet'的方法'Range'失败

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

尝试在其他Office上执行此操作。它对我有用,一些局阻止了动态范围。尝试在具有不同类型MS Office的不同PC上制作它,并使它们成为具有动态范围的简单任务。如果可行,您只需将代码复制到那里,即使在工作表中也可以使用。

答案 1 :(得分:0)

您可以获得与此名称相对应的范围:

ThisWorkbook.Names ("somename").RefersToRange