2013-08-02 40 views
0

誰能教我如何在CurrentRegion屬性來選擇多列,這樣我可以創建基於它在當前區域選擇多列使用Excel VBA

下面是我迄今取得的進展條形圖創建條形圖。然而它不工作

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/

+0

你想調整或選擇? activecell.currentregion.column返回找到srt的單元格下方2行的activecell的列號。從那裏你要告訴它選擇列A和C.我很抱歉,如果我失去了一些東西,但我不確定你想要做什麼。 –

+0

我的目的是通過使用CurrentRegion屬性來選擇整個表格數據,並調整它的大小,使列B和最後一行不包含在我的選擇中。從這裏我可以根據我的選擇創建條形圖。我不確定我是否正確地完成了它 – user2634936

回答

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)