Tự động chia trục trong biểu đồ

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,121
Được thích
24,279
Khi bạn làm việc với biểu đồ, nhiều trường hợp bạn phải thay đổi độ lớn của trục x hoặc y.
Ví dụ như đối với biểu đồ nén 1 trục với dạng XY, giá trị hệ số rỗng luôn thay đổi. Việc thay đổi mất khá nhiều thời gian. Khi đó bạn sử dụng sub này để chỉnh cho nhanh.

Nen.jpg


Mã:
Sub Chontruc()
Dim Truclon, Trucbe As Single
Truclon = Range("I18").Value [I][COLOR="Blue"]'Đây là giá trị hệ số rỗng lớn nhất (e0)[/COLOR][/I]
Trucbe = Range("M18").Value [COLOR="blue"][I]'Đây là giá trị hệ số rỗng nhỏ nhất[/I][/COLOR]
ActiveSheet.DrawingObjects("Chart 18").Select [COLOR="blue"][I]' Tên biểu đồ của bạn, của tôi là "Chart 18"[/I][/COLOR]
ActiveSheet.ChartObjects("Chart 18").Activate
ActiveChart.Axes(xlValue).Select [COLOR="blue"][I]' Chọn trục Y[/I][/COLOR] 
With ActiveChart.Axes(xlValue)
If Truclon + 0.06 > .MinimumScale Or Trucbe - 0.06 [COLOR="blue"][I]'Số 0.06 là tuỳ chọn[/I][/COLOR]
> .MaximumScale Then
.MaximumScale = Round(Truclon + 0.06, 1)
.MinimumScale = Round(Trucbe - 0.06, 1)
ElseIf Truclon + 0.06 < .MinimumScale Or Trucbe - 0.06 > .MinimumScale Then
.MinimumScale = Round(Trucbe - 0.06, 1)
.MaximumScale = Round(Truclon + 0.06, 1)
End If
.MinorUnit = 0.02 [I][COLOR="blue"]' Tuỳ bạn muốn[/COLOR][/I]
.MajorUnit = 0.1[I][COLOR="blue"]' Tuỳ bạn muốn[/COLOR][/I] 
End With
ActiveWindow.Visible = False ' Thoát ra khỏi biểu đồ
End Sub
 
Lần chỉnh sửa cuối:
PhanTuHuong đã viết:
Khi bạn làm việc với biểu đồ, nhiều trường hợp bạn phải thay đổi độ lớn của trục x hoặc y.
Ví dụ như đối với biểu đồ nén 1 trục với dạng XY, giá trị hệ số rỗng luôn thay đổi. Việc thay đổi mất khá nhiều thời gian. Khi đó bạn sử dụng sub này để chỉnh cho nhanh.

Nen.jpg


Mã:
Sub Chontruc()
Dim Truclon, Trucbe As Single
Truclon = Range("I18").Value [I][COLOR=Blue]'Đây là giá trị hệ số rỗng lớn nhất (e0)[/COLOR][/I]
Trucbe = Range("M18").Value [COLOR=blue][I]'Đây là giá trị hệ số rỗng nhỏ nhất[/I][/COLOR]
ActiveSheet.DrawingObjects("Chart 18").Select [COLOR=blue][I]' Tên biểu đồ của bạn, của tôi là "Chart 18"[/I][/COLOR]
ActiveSheet.ChartObjects("Chart 18").Activate
ActiveChart.Axes(xlValue).Select [COLOR=blue][I]' Chọn trục Y[/I][/COLOR] 
With ActiveChart.Axes(xlValue)
If Truclon + 0.06 > .MinimumScale Or Trucbe - 0.06 [COLOR=blue][I]'Số 0.06 là tuỳ chọn[/I][/COLOR]
> .MaximumScale Then
.MaximumScale = Round(Truclon + 0.06, 1)
.MinimumScale = Round(Trucbe - 0.06, 1)
ElseIf Truclon + 0.06 < .MinimumScale Or Trucbe - 0.06 > .MinimumScale Then
.MinimumScale = Round(Trucbe - 0.06, 1)
.MaximumScale = Round(Truclon + 0.06, 1)
End If
.MinorUnit = 0.02 [I][COLOR=blue]' Tuỳ bạn muốn[/COLOR][/I]
.MajorUnit = 0.1[I][COLOR=blue]' Tuỳ bạn muốn[/COLOR][/I] 
End With
ActiveWindow.Visible = False ' Thoát ra khỏi biểu đồ
End Sub
Tên biểu đồ xem ở đâu bác ơi?
 
Đúng là tìm được tên thì khó, nhưng bạn có thể sử dụng chức năng Record Macro để tìm tên bằng cách chọn đối tượng biểu đồ đó. Sau đó kiểm tra lại code là được.
 
He he he . Lại anh anh NINH ở đây rùi .
 
Web KT
Back
Top Bottom