Tôi muốn thay đoạn nguồn dữ liệu này bằng vd:range(cells(1,1),cells(m,5)) trong đó m là biến đã khai báo trước đó. Xin hướng dẫn.
" />
  • Thứ Tư, 17/05/2006 09:14 (GMT+7)

    Vẽ biểu đồ bằng macro trong Exel

    Câu hỏi :
    Tôi cần tạo 1 đoạn mã macro trong Excel để vẽ biểu đồ từ nguồn dữ liệu của 1 bảng tính cho trước nhưng vì nguồn dữ liệu trong bảng tính lại thay đổi về số hàng cón trong biểu đồ tôi chỉ muốn xuất hiện những dữ liệu có thông số, tuy nhiên việc này không thực hiện được khi tôi thay số hàng cụ thể bằng 1 biến. Ví dụ: ActiveChart.SeriesCollection(1).Select ActiveChart.SetSourceData Source:=Sheets("SAP").Range("AD1:AE12,AG1:AG12"), PlotBy:=xlColumns
    Tôi muốn thay đoạn nguồn dữ liệu này bằng vd:range(cells(1,1),cells(m,5)) trong đó m là biến đã khai báo trước đó. Xin hướng dẫn.


    Trả lời :
    Sức mạnh của lập trình là ở chỗ dùng biến để miêu tả dữ liệu cần xử lý, do đó bất kỳ lệnh nào của ngôn ngữ nào cũng cho phép dùng biến để miêu tả dữ liệu cần xử lý, còn hằng chỉ là trường hợp đặc biệt của biến mà thôi. Thí dụ bạn có thể miêu tả nguồn dữ liệu của 1 biểu đồ Excel bằng 1 vùng cell biến đổi theo trị các biến, cụ thể bạn có thể dùng các lệnh sau:

    'khai báo các biến miêu tả góc trên trái  của vùng cell cần vẽ
    Dim row1 As Integer, col1 As Integer
    'khai báo các biến miêu tả góc dưới phải của vùng cell cần vẽ
    Dim row2 As Integer, col2 As Integer
       'thiết lập các giá trị theo yêu cầu
       'thí dụ vùng vẽ từ A1: B4
       row1 = 1: col1 = 1: row2 = 4: col2 = 2
       'tạo biểu đồ
       Charts.Add
       'thiết lập các thuộc tính biểu đồ
       ActiveChart.ChartType = xl3DColumnClustered
       ActiveChart.SetSourceData Source:= Sheets('SAP').Range( Sheets('SAP').

    Cells(row1, col1), Sheets("SAP").Cells(row2, col2)), PlotBy:= xlColumns
       ...
    Lưu ý bạn nên dùng thuộc tính Range và Cells trên đối tượng tường minh là Sheet("SAP") của bạn (worksheet chứa dữ liệu vẽ).

    Chuyên mục: Ứng dụng văn phòng