Dùng macro để in đậm một vài ký tự (1 người xem)

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

wanghuy3

Thành viên mới
Tham gia
2/3/12
Bài viết
32
Được thích
2
Nghề nghiệp
nhân viên ocean bank
Mình đang làm một macro trong excel để xử lí:
ví dụ ô 1: a 123,aaa
ô 2 : a 12,bbb
sau khi chạy macro sẽ tự động in đậm như sau:
ô 1: a 123,aaa
ô 2 : a 12,bbb

đoạn mã trong macro như sau:

sub abc ()
Selection.Characters(3, InStr(Selection.Value, ",") - 3).Font.fontstyle = "bold"
End Sub

khi chọn từng ô thì việc sử lí đúng theo yêu cầu, nhưng khi chọn nhiều ô để xử lí cùng lúc thì bị báo lỗi.
Rất mong mọi người giúp đỡ để có thể xử lí cùng lúc nhiều ô.
cảm ơn mọi người rất nhiều
 
Lần chỉnh sửa cuối:
Mình đang làm một macro trong excel để xử lí:
ví dụ ô 1: a 123,aaa
ô 2 : a 12,bbb
sau khi chạy macro sẽ tự động in đậm như sau:
ô 1: a 123,aaa
ô 2 : a 12,bbb

đoạn mã trong macro như sau:

sub abc ()
Selection.Characters(3, InStr(Selection.Value, ",") - 3).Font.fontstyle = "bold"
End Sub

khi chọn từng ô thì việc sử lí đúng theo yêu cầu, nhưng khi chọn nhiều ô để xử lí cùng lúc thì bị báo lỗi.
Rất mong mọi người giúp đỡ để có thể xử lí cùng lúc nhiều ô.
cảm ơn mọi người rất nhiều
Tôi nghĩ đoạn code trên sao chạy được nhỉ? Ít ra cũng phải thế này chứ:
Public Sub abc()
Selection.Characters(3, InStr(Selection.Value, ",") - 3).Font.Bold = True
End Sub
 
Upvote 0
Bài trước bị khóa vì lý do tiêu đề chung chung. Bạn đăng bài lần hai cũng không cải thiện được bao nhiêu. Tiêu đề "Tạo macro để xử lí kí tự" khá hơn một chút nhưng vẫn còn chung chung lắm
Tôi đã sửa lại tiêu đề cho bạn và tôi nghĩ cái tiêu đề "Dùng macro để in đậm một vài ký tự" đâu phải không thể nghĩ ra đối với bạn
Lần sau tôi sẽ không sửa đâu (vì bạn đã rút kinh nghiệm lần này rồi)
 
Upvote 0
Mình đang làm một macro trong excel để xử lí:
ví dụ ô 1: a 123,aaa
ô 2 : a 12,bbb
sau khi chạy macro sẽ tự động in đậm như sau:
ô 1: a 123,aaa
ô 2 : a 12,bbb

đoạn mã trong macro như sau:

sub abc ()
Selection.Characters(3, InStr(Selection.Value, ",") - 3).Font.fontstyle = "bold"
End Sub

khi chọn từng ô thì việc sử lí đúng theo yêu cầu, nhưng khi chọn nhiều ô để xử lí cùng lúc thì bị báo lỗi.
Rất mong mọi người giúp đỡ để có thể xử lí cùng lúc nhiều ô.
cảm ơn mọi người rất nhiều

ít nhất cũng phải có cái file dữ liệu tạm và kết quả tạm thì viết vài dòng là được. Còn không có file thì viết bằng niềm tin à?
 
Upvote 0
Mình đang làm một macro trong excel để xử lí:
ví dụ ô 1: a 123,aaa
ô 2 : a 12,bbb
sau khi chạy macro sẽ tự động in đậm như sau:
ô 1: a 123,aaa
ô 2 : a 12,bbb

đoạn mã trong macro như sau:

sub abc ()
Selection.Characters(3, InStr(Selection.Value, ",") - 3).Font.fontstyle = "bold"
End Sub

khi chọn từng ô thì việc sử lí đúng theo yêu cầu, nhưng khi chọn nhiều ô để xử lí cùng lúc thì bị báo lỗi.
Rất mong mọi người giúp đỡ để có thể xử lí cùng lúc nhiều ô.
cảm ơn mọi người rất nhiều
Tôi giả sử dữ liệu của bạn nằm ở cột A, bắt đầu từ A1, code như sau:
Mã:
Public Sub Chuot0106()
Dim i As Long, rng As Range
Set rng = Sheet1.Range("A1:A" & Sheet1.Range("A65500").End(xlUp).Row)
    For i = 1 To rng.Rows.Count
        rng(i, 1).Characters(3, InStr(rng(i, 1).Value, ",") - 3).Font.Bold = True
    Next i
End Sub
 
Upvote 0
Bài trước bị khóa vì lý do tiêu đề chung chung. Bạn đăng bài lần hai cũng không cải thiện được bao nhiêu. Tiêu đề "Tạo macro để xử lí kí tự" khá hơn một chút nhưng vẫn còn chung chung lắm
Tôi đã sửa lại tiêu đề cho bạn và tôi nghĩ cái tiêu đề "Dùng macro để in đậm một vài ký tự" đâu phải không thể nghĩ ra đối với bạn
Lần sau tôi sẽ không sửa đâu (vì bạn đã rút kinh nghiệm lần này rồi)

Lần sau tôi sẽ rút kinh nghiệm, cảm ơn sự giúp đỡ của bạn!
 
Lần chỉnh sửa cuối:
Upvote 0
cảm ơn bạn chuot0106, không biết có cách nào chỉ xử lí những ô mà mình chọn thôi, những ô không chọn thì không xử lí

Thì bạn thay đoạn:
Set rng = Sheet1.Range("A1:A" & Sheet1.Range("A65500").End(xlUp).Row)
thành:
Set rng = Selection
thế thôi
(muốn hoàn chỉnh hơn thì phải bẫy lỗi)
----------------
Ngoài ra bạn chuot0106 dùng đoạn: For i = 1 To rng.Rows.Count cũng chưa mấy tổng quát ---> Sao mà biết dữ liệu người ta bố trí thế nào mà duyệt các cell trong 1 cột? For Each cel in Selection (hay gì đó tương tự) thì đúng hơn
 
Lần chỉnh sửa cuối:
Upvote 0
cảm ơn bạn chuot0106, không biết có cách nào chỉ xử lí những ô mà mình chọn thôi, những ô không chọn thì không xử lí
Có đấy, thử code này xem:
Mã:
Public Sub Chuot0106_1()
Dim cll As Range
For Each cll In Selection
cll.Characters(3, InStr(cll.Value, ",") - 3).Font.Bold = True
Next cll
End Sub
Chọn các ô cần tô đậm sau đó chạy macro.
 
Upvote 0
Có đấy, thử code này xem:
Mã:
Public Sub Chuot0106_1()
Dim cll As Range
For Each cll In Selection
cll.Characters(3, InStr(cll.Value, ",") - 3).Font.Bold = True
Next cll
End Sub
Chọn các ô cần tô đậm sau đó chạy macro.

Bạn thử gõ lằng nhằng gì đó vào A1 và A2 nhưng đừng gõ dấu phẩy (tức chuỗi trong từng cell không có dấu phẩy). Xong bạn quét chọn A1:A2 rồi chạy code của bạn thử
Nói chung là: THIẾU BẪY LỖI (như tôi đã nói ở bài trước)
 
Upvote 0
Bạn thử gõ lằng nhằng gì đó vào A1 và A2 nhưng đừng gõ dấu phẩy (tức chuỗi trong từng cell không có dấu phẩy). Xong bạn quét chọn A1:A2 rồi chạy code của bạn thử
Nói chung là: THIẾU BẪY LỖI (như tôi đã nói ở bài trước)
Dạ, đây là viết code theo đơn đặt hàng thầy ạ! Khách hàng này chỉ có nhu cầu thế này thôi, nếu khách hàng khác có yêu cầu bổ sung ta lại bổ sung tiếp ạ! hi--=0
 
Upvote 0
Dạ, đây là viết code theo đơn đặt hàng thầy ạ! Khách hàng này chỉ có nhu cầu thế này thôi, nếu khách hàng khác có yêu cầu bổ sung ta lại bổ sung tiếp ạ! hi--=0

Đơn hàng yêu cầu: tô đậm từ ký tự thứ 3 đến trước dấu phẩy
Vậy có phải bạn nên tìm xem text ấy có dấu phẩy hay không trước tiên chứ ---> Không có dấu phẩy nào cũng tô, vậy bạn InStr(cll.Value, ",") để làm gì?
 
Upvote 0
Mình đang làm một macro trong excel để xử lí:
ví dụ ô 1: a 123,aaa
ô 2 : a 12,bbb
sau khi chạy macro sẽ tự động in đậm như sau:
ô 1: a 123,aaa
ô 2 : a 12,bbb
đoạn mã trong macro như sau:
....
bạn nên gửi kèm số liệu thực lên để mọi người khỏi "đoán mò" nữa ... ---> bài toán của bạn sẽ được giải nhanh thôi ^^^^ (nếu quá ít thì ko thể cài hết được các trường hợp xảy ra + bẫy lỗi)

nếu trong 1 ô chỉ chứa 1 dấu , thì có thể phát sinh thêm:
phatsinh.jpg
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom