haidang3245
Thành viên mới
- Tham gia
- 1/6/23
- Bài viết
- 6
- Được thích
- 0
Nhờ các ace giúp tạo 1 cái nút cập nhật điều chỉnh giãn và ẩn hiện dòng, tương tự như file dưới. Nhưng file dưới chạy nó chậm quá vì mỗi lần qua sheet khác là phải chạy code. Mình muốn tạo 1 nút để cập nhật 1 lần. Xin cảm ơn
Mã:
Private Sub Worksheet_Activate()
'Range("A4").Select
Dim Rng As Range
Dim i As Long, dongcuoi As Long, dong As Long
Application.ScreenUpdating = False
For i = 10 To 200 'chay tu dong bat dau den ket thuc. can tu dong ian dong
If Cells(i, 37).Value <> "" Then 'thu tu cot cuoi cung chua ham row
dong = Cells(i, 37).Value
If Cells(dong, 5).MergeCells = True Then MergeCellFit Cells(dong, 5) ' stt cot bat dau gop o
End If
Next i
For Each Rng In [AK12:AK59 ,AK114:AK200]
If Rng.Value <> "" Then
Rng.EntireRow.Hidden = False
Else
Rng.EntireRow.Hidden = True
End If
Next Rng
Call dontrang
Application.ScreenUpdating = True
' zoom100 Macro
ActiveWindow.zoom = 100
Range("AE4").Select
ActiveWorkbook.save
End Sub
Sub AutoFitMerge()
Dim lDong As Long
Dim i As Integer
Dim sCelldau As String
Dim rCell As Range
Dim NewRwH As Single, cWd As Single, MrgeWd As Single
With Application
.ScreenUpdating = False 'Tam dung cap nhat man hinh
.Calculation = xlCalculationManual 'Tat cap nhat tinh toan
.EnableEvents = False
.DisplayAlerts = False
.Cursor = xlWait
.EnableCancelKey = xlErrorHandler
End With
lDong = ActiveCell.Row + Selection.Rows.Count
sCelldau = ActiveCell.Address
ActiveCell.Select
Do Until ActiveCell.Row = lDong
If ActiveCell.MergeCells Then
With ActiveCell
.WrapText = True
If i = 0 Then
'Lay ColumnWidth cua cell dau va Tinh Tong ColumnWidth
For Each rCell In Selection
i = i + 1
'Lay ColumnWidth cua cell dau
If i = 1 Then cWd = rCell.ColumnWidth
'Tinh Tong ColumnWidth
MrgeWd = MrgeWd + rCell.ColumnWidth
Next
End If
Selection.MergeCells = False
.ColumnWidth = MrgeWd
.EntireRow.AutoFit
NewRwH = .RowHeight
'Tra lai ColumnWidth cua cell dau
.ColumnWidth = cWd
'MergeCells va lay Chieu cao Dong
With Selection
.MergeCells = True
.RowHeight = NewRwH
End With
End With
End If
ActiveCell.Offset(1).Select
Loop
With Application
.ScreenUpdating = True 'Cap nhat man hinh
.Calculation = xlCalculationAutomatic 'Cap nhat tinh toan
.EnableEvents = True
.DisplayAlerts = True
.Cursor = xlDefault
.EnableCancelKey = xlInterrupt
End With
Range(sCelldau).Select
End Sub