Làm thế nào để tìm được giá trị Min rồi đặt nó cho tỉ lệ trên biểu đồ ?

Liên hệ QC
Cái này sẽ lấy Min toàn bộ cột dữ liệu? hay sẽ chỉ lấy Min những dữ liệu sau khi lọc theo thời gian bạn nhỉ?
Lọc thời gian nào? thời gian sao
hàm SUBTOTAL(105, ...
105 thì là bỏ qua ẩn dòng, liên quan gì lọc thời gian,

SUBTOTAL( ... tham số nó chỉ làm việc với RANGE
nên việc dùng Value sẽ lỗi
 
Lọc thời gian nào? thời gian sao
hàm SUBTOTAL(105, ...
105 thì là bỏ qua ẩn dòng, liên quan gì lọc thời gian,

SUBTOTAL( ... tham số nó chỉ làm việc với RANGE
nên việc dùng Value sẽ lỗi
Oh, thật là buồn bạn ạ. hôm qua thử chạy thấy ok rồi nhưng nay mình chạy thật thì lại lỗi, tình huống mình gặp là dữ liệu dài quá 3000 hàng thì nó chạy nhưng nó lại k có làm gì ( k đổi tỉ lệ trục )
mình đã thử theo 2 hướng như này nhưng đều thất bại:
1/ chỉ để phạm vị i nhỏ mỗi lần chạy, và mỗi lần chỉ chạy với 1 trục. srs1,
2/ mình chọn ẩn các hàng đi chỉ để lại ít hàng thôi. ( k xóa mà để ẩn hàng cho biểu đồ nhẹ đi ) nhưng cũng k được. ( trừ khi phải xóa bỏ hẳn các hàng đi thì mới chạy được )
đây là code minh thử với i từ 1-2 thôi và chỉ chạy srs1 nhưng nó chạy nhưng k làm gì cả.

Sub doitoadoMin()
Dim i As Integer
Dim srs1 As Series
Sheets("sheet3").Activate

On Error Resume Next
For i = 1 To 2 'ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(i)

ActiveSheet.ChartObjects(i).Activate
Set srs1 = ActiveChart.SeriesCollection(1)

.Chart.Axes(xlValue).MinimumScale = Application.WorksheetFunction.Min(srs1.Values)

'ActiveChart.Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True
'ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True
End With
Set srs1 = Nothing
Next i
On Error GoTo 0
End Sub
 
Bỏ hết
On Error Resume Next
Thì mới biết lỗi ở đâu
Không nên sử dụng lệnh đó
 
Bỏ hết
On Error Resume Next
Thì mới biết lỗi ở đâu
Không nên sử dụng lệnh đó
Cảm ơn bạn vậy để mình thử lại, tại k phải dân lập trình nên dốt quá. hi
Bài đã được tự động gộp:

Cảm ơn bạn vậy để mình thử lại, tại k phải dân lập trình nên dốt quá. hi
nếu vậy nó báo lỗi này bạn ạ:

Code mình dùng như này:

Sub doitoadoMin()
Dim i As Integer
Dim srs1 As Series

Sheets("sheet3").Activate
For i = 78 To 80 'ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(i)

ActiveSheet.ChartObjects(i).Activate
Set srs1 = ActiveChart.SeriesCollection(1)

.Chart.Axes(xlValue).MinimumScale = Application.WorksheetFunction.Min(srs1.Values)

End With
Set srs1 = Nothing
Next i
End Sub

1584617798062.png
 
Cảm ơn bạn vậy để mình thử lại, tại k phải dân lập trình nên dốt quá. hi
Bài đã được tự động gộp:


nếu vậy nó báo lỗi này bạn ạ:

Code mình dùng như này:

Sub doitoadoMin()
Dim i As Integer
Dim srs1 As Series

Sheets("sheet3").Activate
For i = 78 To 80 'ActiveSheet.ChartObjects.Count
With ActiveSheet.ChartObjects(i)

ActiveSheet.ChartObjects(i).Activate
Set srs1 = ActiveChart.SeriesCollection(1)

.Chart.Axes(xlValue).MinimumScale = Application.WorksheetFunction.Min(srs1.Values)

End With
Set srs1 = Nothing
Next i
End Sub

View attachment 233643
Nhắc 1 lần nữa, code phải gắn với file mới hiểu được (nên xóa bớt biểu đồ đi, để 2 3 cái với dữ liệu ngàn dòng, ,mà bị lỗi) và post (đính kèm) lên đây.
Lỗi: phải chỉ rõ dòng nào?

Nếu không, thì tôi chỉ biết bói voi qua hình, và phí thời gian
 
Lần chỉnh sửa cuối:
Nhắc 1 lần nữa, code phải gắn với file mới hiểu được (nên xóa bớt biểu đồ đi, để 2 3 cái với dữ liệu ngàn dòng, ,mà bị lỗi) và post (đính kèm) lên đây.
Lỗi: phải chỉ rõ dòng nào?

Nếu không, thì tôi chỉ biết bói voi qua hình, và phí thời gian
Cảm ơn bạn mình đã làm được rồi ( mỗi lần chỉ cho for i = 1 to 5 ) thì nó chạy ok rồi
 
Web KT
Back
Top Bottom