如何引用动态多范围?

时间:2018-04-23 09:09:43

标签: excel vba

我正在尝试使用源数据列表(两个单独的列)创建图表,根据用户输入,列数可能会有所不同。 我将动态值存储在名为" chartRange"的变量中。 我最初使用固定范围制作了子,使用单个代码行,它完美地工作。 我替换了这个代码行:

Set chartRange = ActiveSheet.Range("E8:E69,G8:G69")

使用这3个新代码行:

Set r1 = Sheets("Sheet1").Range("E8":"E" & chartRange)
Set r2 = Sheets("Sheet1").Range("G8":"G" & chartRange)
Set myMultipleRange = Union(r1, r2)

我正在尝试使这3个新代码行工作,但收到错误消息。 有人可以帮我纠正代码问题吗? 我在下面列出了完整的子。 提前谢谢。

Dim chartRange As Integer
Dim cht As ChartObject
Dim totalPymts As Integer
Dim r1, r2, myMultipleRange As Range


' this variable is used to define table size
totalPymts = Worksheets("Sheet1").Cells(5, 4).Value


  'my data range for the chart using single line
  ' Set chartRange = ActiveSheet.Range("E8:E69,G8:G69")

  ' the 3 new lines that dont work
  Set r1 = Sheets("Sheet1").Range("E8":"E" & chartRange)
  Set r2 = Sheets("Sheet1").Range("G8":"G" & chartRange)
  Set myMultipleRange = Union(r1, r2)

'Create a chart
  Set cht = ActiveSheet.ChartObjects.add( _
    Left:=Range("a1").Left, _
    Width:=450, _
    Top:=Range("a5").Top, _
    Height:=260)

'Give chart some data
  cht.Chart.SetSourceData Source:=myMultipleRange

'Determine the chart type
  cht.Chart.ChartType = xlLine


'Ensure chart has a title
  cht.Chart.HasTitle = True

'Change chart's title
  cht.Chart.ChartTitle.Text = "Repayments Schedual"

  'Remove X-axis

  ' remove legend entry 1
    Worksheets("sheet1").ChartObjects(1).Chart _
 .Legend.LegendEntries(1).Delete


End Sub

0 个答案:

没有答案