Nhờ thay đổi code của Macro để vẽ biểu đồ khi số dòng dữ liệu tăng lên. (2 người xem)

Liên hệ QC

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

thanhtung1088

Thành viên mới
Tham gia
23/8/13
Bài viết
20
Được thích
2
Chào các anh chị.

Tôi có một file dữ liệu excel (đính kèm theo) được xuất ra từ phần mềm đo đạc, file này có các cột từ cột A đến cột N không có dữ liệu, nên tôi sẽ xóa các cột này đi, sau đó tôi vẽ biểu đồ dạng “Scatter with Straight Lines” với dữ liệu từ 3 cột P, S, T (tương ứng cột B, E, F sau khi đã xóa cột A đến cột N). Vì không biết cách nào để vẽ biểu đồ khi cột B nằm cách xa cột E và F, nên tôi copy các cột này đến cột H,I,J để có thể vẽ được biểu đồ. Cuối cùng là điều chỉnh X - axis với hai giá trị là giá trị dòng đầu tiên của cột B cho Minimum, và dòng cuối cùng của cột B cho Maximum trong phần Format Axis.

Các quá trình này tôi ghi lại bằng Macro, các anh chị cho tôi hỏi phải thay đổi code thế nào để có thể vẽ lại biểu đồ khi dữ liệu của tôi có số dòng tăng lên bất kỳ?

Xin cảm ơn.

PHP:
Sub bieudo()
 
' bieudo Macro
'
    Columns("A:N").Select
    Selection.Delete Shift:=xlToLeft
    Columns("B:B").Select
    Selection.Copy
    Range("H1").Select
    ActiveSheet.Paste
    Columns("E:F").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("I1").Select
    ActiveSheet.Paste
    Range("H1:J802").Select
    Range("H5").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Tax and Task Report'!$H$1:$J$802")
    ActiveChart.ChartType = xlXYScatterLinesNoMarkers
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).MinimumScale = 0
    ActiveChart.Axes(xlCategory).MinimumScale = 300
    ActiveChart.Axes(xlCategory).MaximumScale = 1200
    ActiveChart.Axes(xlCategory).MaximumScale = 1100
End Sub
 

File đính kèm

Bạn có thể thay cụm "H1:J802" thành cụm "H:J" là thoải mái tăng dòng. Bạn tham khảo code sau: (được hiệu chỉnh từ code của bạn).

Sub bieudo()
Columns("A:N").Delete Shift:=xlToLeft
Columns("B:B").Copy
Cells(1, 8).PasteSpecial Paste:=xlPasteValues
Columns("E:F").Copy
Cells(1, 9).PasteSpecial Paste:=xlPasteValues
a = Application.WorksheetFunction.Min(Columns("H:H"))
b = Application.WorksheetFunction.Max(Columns("H:H"))
Columns("H:J").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("H:J")
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).MinimumScale = a
ActiveChart.Axes(xlCategory).MaximumScale = b
End Sub
 
Web KT

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

Back
Top Bottom