Code định dang trên nhiều sheet (1 người xem)

Liên hệ QC

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

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
865
Được thích
127
Giới tính
Nam
Sub dinhdang ()
Dim item As Range
For Each item In Range("VUNGBC")
If item.Value < 0 Then
item.NumberFormat = "#,##0"
item.Font.Color = 255
Else
item.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"
item.Font.Color = xlThemeColorLight1
End If
Next
Application.ScreenUpdating = True
End Sub



Cho em hỏi, code trên chỉ định dang chỉ cho 1 vùng. Nay em muốn định dang thêm vùng thứ 2, vùng thứ 3, ... trên nhiều sheet khác nhau nhưng chỉ thêm vùng khai báo trong code. Không phải chèn code vô mỗi sheet thì phải làm sao vậy các anh, chị

Trân trọng
 
Lần chỉnh sửa cuối:
Cho em hỏi, code trên chỉ định dang chỉ cho 1 vùng. Nay em muốn định dang thêm vùng thứ 2, vùng thứ 3, ... trên nhiều sheet khác nhau nhưng chỉ thêm vùng khai báo trong code. Không phải chèn code vô mỗi sheet thì phải làm sao vậy các anh, chị

Trân trọng

Vui lòng cho mình hỏi làm sao để sử dụng code này?

Cảm ơn!
 
Upvote 0
Cho em hỏi, code trên chỉ định dang chỉ cho 1 vùng. Nay em muốn định dang thêm vùng thứ 2, vùng thứ 3, ... trên nhiều sheet khác nhau nhưng chỉ thêm vùng khai báo trong code. Không phải chèn code vô mỗi sheet thì phải làm sao vậy các anh, chị
Trân trọng
bạn định dùng code trên cho 1 "nút" nào đó hay là kích hoạt mỗi khi Worksheet_Activate ???
 
Upvote 0
bạn định dùng code trên cho 1 "nút" nào đó hay là kích hoạt mỗi khi Worksheet_Activate ???

Dùng code trên 1 "nút" ddi anh.
Còn Worksheet_Activate thì đối với sheet nào dữ liệu nhiều mỗi lần chọn sheet đó phải đợi hơi lâu
 

File đính kèm

Upvote 0
bạn tải file về kiểm tra xem sao nhé !
Xin phép anh em thêm dòng code sau:
Sub DinhDang()
Dim rng As Range
Dim item As Range
Application.ScreenUpdating = False
On Error Resume Next
For Each rng In Sheets("Setup").Range("C3:C20")
If rng <> "" Then
For Each item In Range(rng.Value)
With item
If .Value < 0 Then
.NumberFormat = "#,##0": .Font.Color = 255
Else
.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"
.Font.Color = xlThemeColorLight1
End If
End With
Next
End If
Next
Application.ScreenUpdating = True
MsgBox ("Dinh dang xong"), vbInformation
End Sub
Nếu thêm dòng lệnh bấy lỗi này thì có thể bỏ cột tên sheet đi (tức không cần nhập tên sheet nữa). Chỉ cần nhập tên vùng cần định dạng là xong.
 
Upvote 0
Xin phép anh em thêm dòng code sau:
Nếu thêm dòng lệnh bấy lỗi này thì có thể bỏ cột tên sheet đi (tức không cần nhập tên sheet nữa). Chỉ cần nhập tên vùng cần định dạng là xong.
ác,
thêm On error goto ... ji` ji` đó còn chấp nhận được, ai lại thêm kiểu đó --=0
 
Upvote 0
Vì sao vậy anh? Anh có thể giải thích rõ hơn cho em được không ạ?
- trong trường hợp trên xảy ra lỗi khi Name chưa được khai báo ---> nên dùng On error goto ... rồi cho show 1 msgbox là cảnh báo Name nào chưa có thay vì dùng On Error resume next (bỏ qua lỗi)

'-------------
- để xử lý lỗi của 1 Macro: cách xử lý thân thiện nhất là thông báo cho người dùng biết lỗi đó là gì.
bác tham khảo thêm bài: "On Error Goto 0" nghĩa là gì? (#5)
 
Upvote 0

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

Back
Top Bottom