Vẽ-xóa biểu đồ bằng VBA - nhờ giúp đỡ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

caovanhau1507

Thành viên chính thức
Tham gia
17/7/12
Bài viết
79
Được thích
3
Chào các anh chị GPE,

Hiện tại em có tự viết 1 đoạn code vẽ buble chart (học từ recording macro), tuy nhiên em đang có 1 vấn đề về đặt tên để xác định đích danh biểu đồ đã vẽ (1 sheet có thể có nhiều biểu đồ) nhằm tiện trong việc tra cứu hay điều chỉnh.
Nhờ các anh chị hướng dẫn cho em viết:
- lệnh đặt tên cho chart;
- lệnh đặt tên cho datalable dựa trên nguồn từ cột BA;
- lệnh xóa chart;

Cảm ơn các anh chị nhiều.
 

File đính kèm

Cho em hỏi thêm, trường hợp 1 biểu đồ đã vẽ sẵn trong sheet mình có cách nào nhận dạng và xóa bằng VBA được không ah?
 
Chào các anh chị GPE,

Hiện tại em có tự viết 1 đoạn code vẽ buble chart (học từ recording macro), tuy nhiên em đang có 1 vấn đề về đặt tên để xác định đích danh biểu đồ đã vẽ (1 sheet có thể có nhiều biểu đồ) nhằm tiện trong việc tra cứu hay điều chỉnh.
Nhờ các anh chị hướng dẫn cho em viết:
- lệnh đặt tên cho chart;
- lệnh đặt tên cho datalable dựa trên nguồn từ cột BA;
- lệnh xóa chart;

Cảm ơn các anh chị nhiều.
Mình chưa nghiên cứu về phần này, nhưng mình hiểu biết thế này.
- Thông thường các object đều có thuộc tinh Name để chúng ta Set hoặc Return tên của nó.
- Khi nó được tạo ra, nó sẽ nằm trong một Collection nào đó. Vì vậy có thể dùng vòng lặp để duyệt qua rồi xoá nó.
 
Record Macro để tạo Chart thì mỗi lần nó tạo 1 tên mới. Theo tôi giải pháp nên can thiệp vào Chart có sẵn thay vì tạo mới, mình chỉ Edit thôi.
Tất nhiên là theo cách kia vẫn được khi dùng thêm biến xác định Name của ActiveChart
 
Chào các anh chị GPE,

Hiện tại em có tự viết 1 đoạn code vẽ buble chart (học từ recording macro), tuy nhiên em đang có 1 vấn đề về đặt tên để xác định đích danh biểu đồ đã vẽ (1 sheet có thể có nhiều biểu đồ) nhằm tiện trong việc tra cứu hay điều chỉnh.
Nhờ các anh chị hướng dẫn cho em viết:
- lệnh đặt tên cho chart;
- lệnh đặt tên cho datalable dựa trên nguồn từ cột BA;
- lệnh xóa chart;

Cảm ơn các anh chị nhiều.
Đại khái thế này:
Mã:
Sub CreateChart()
  Dim rngSource As Range, wksData As Worksheet, cht As Object
  DeleteChart
  Set wksData = Worksheets("Chart") ''<--- xac dinh sheet
  Set rngSource = wksData.Range("BB3", wksData.Range("BD60000").End(xlUp)) ''<--- xac dinh database
  Set cht = wksData.Shapes.AddChart2(269, xlBubble3DEffect)
  cht.Left = wksData.Range("AN4").Left '<--- Vi tri chart
  cht.Top = wksData.Range("AN4").Top   '<--- Vi tri chart
  cht.Name = "MyName"  '<--- dat ten chart
  With cht.chart
    .SetSourceData rngSource
    .ChartStyle = 248
    .ChartArea.Height = 750
    .ChartArea.Width = 1800
    .Axes(xlCategory).MinimumScale = 0
    .Axes(xlCategory).MajorUnit = 10
    .Axes(xlValue).MinimumScale = 0
    .Axes(xlValue).MajorUnit = 10
    .ChartTitle.Text = "TOTAL DEBT STRUCTURE"
    .FullSeriesCollection(1).ApplyDataLabels
    .FullSeriesCollection(1).DataLabels.ShowValue = False
    .ChartGroups(1).VaryByCategories = True
  End With
End Sub
Sub DeleteChart()
  On Error Resume Next
  ActiveSheet.ChartObjects("MyName").Delete
End Sub
 
Web KT

Bài viết mới nhất

Back
Top Bottom