在当前区域中选择多个列以使用Excel VBA创建条形图

时间:2013-08-02 09:38:05

标签: excel-vba charts multiple-columns vba excel

有没有人可以教我如何在CurrentRegion属性中选择多个列,以便我可以基于它创建条形图

以下是我目前的进展情况..但它不起作用

Public Function FourthTable()

Dim Source As Workbook
Dim Search As Range
Dim CR As Range

SRT = "Service Request Tickets (IIT)"

Set Source = Workbooks.Open("C:\Users\HP\Desktop\test.xlsx")

Source.Worksheets("Sheet1").Activate

Set Search = ActiveSheet.Cells.Find(SRT)

Source.Worksheets("Sheet1").Range(Search.Address).Offset(2, 0).CurrentRegion.Activate

ActiveCell.CurrentRegion.Columns.Range("A:A, 
C:C").Resize(ActiveCell.CurrentRegion.Rows.Count - 1).Select

ActiveSheet.Shapes.AddChart.Select
'ActiveChart.SetSourceData  
Source:=ActiveWorkbook.Sheets(1).Range(Search.Address).Offset(2, 
0).CurrentRegion.Resize(CR.Rows.Count - 1, CR.Columns.Count)
ActiveChart.ChartType = xl3DBarClustered
With ActiveChart
   .Perspective = 0
   .Elevation = 15
   .Rotation = 20
   .RightAngleAxes = True

End With

ActiveSheet.ChartObjects(1).Activate
ActiveSheet.ChartObjects(1).Cut
With Sheets("Sheet2")
.Select
.Range("A34").Select
End With

ActiveSheet.Paste
Source.Close SaveChanges:=True
End Function

我收到的错误消息是应用程序定义或对象定义错误

我想要选择的列是A列和C列。我无法通过指示单元格的地址(例如“A34”或“C34”)来选择列,因为表数据是使用程序工具生成的因此,表格数据的位置每次都在变化

下面的图片是我引用的表格数据

http://postimg.org/image/gu05epzm9/

1 个答案:

答案 0 :(得分:0)

而不是:

  Source.Worksheets("Sheet1").Range(Search.Address).Offset(2, 0). _
       CurrentRegion.Activate

使用此选项可收缩所选区域,以便排除数据表的最后一行和最后一列:

  Dim tbl As Range
  Set tbl = Source.Worksheets("Sheet1").Range(Search.Address).Offset(2, 0). _
      CurrentRegion
  tbl.Resize(tbl.Rows.Count - 1, tbl.Columns.Count - 1).Select

继续发表评论或删除:

'ActiveChart.SetSourceData Source:=ActiveWorkbook.Sheets(1). _
     Range(Search.Address).Offset(2,0).CurrentRegion. _
     Resize(CR.Rows.Count - 1, CR.Columns.Count)