Tại sao không thể BORDER?

Liên hệ QC

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,717
Giới tính
Nam
Tôi có một File với một khối ô mà không thể Border, tại sao lại xảy ra tình trạng này?

Cụ thể trong File là như thế này:

Không thể Border hay bỏ Border trong khối ô màu xanh A2:M4 hoặc A2:A4 được.

Nhưng có thể chọn từng phần hoặc bao nhiều hơn khối ô đó để Border thì lại được?!
 

File đính kèm

  • NoBorder.xls
    35.5 KB · Đọc: 50
Tôi có một File với một khối ô mà không thể Border, tại sao lại xảy ra tình trạng này?

Cụ thể trong File là như thế này:

Không thể Border hay bỏ Border trong khối ô màu xanh A2:M4 hoặc A2:A4 được.

Nhưng có thể chọn từng phần hoặc bao nhiều hơn khối ô đó để Border thì lại được?!
Hôm trước cũng thấy 1 file tương tự!
Nói chung: Ráng làm thì vẫn khắc phục được (bằng cách dùng Format Painter từ cell khác paste vào)
Còn nguyên nhân từ đâu thì... cóc biết
 
Hôm trước cũng thấy 1 file tương tự!
Nói chung: Ráng làm thì vẫn khắc phục được (bằng cách dùng Format Painter từ cell khác paste vào)
Còn nguyên nhân từ đâu thì... cóc biết

Có phải khả năng là do xử lý mảng hay không?
 
Lần chỉnh sửa cuối:
Vào format stlye, delete Style "Normal 2"
Nếu siêng thì dùng ASAP xoá hết các style không dùng
Siêng hơn, thì vào MS Script Editor xoá bằng tay

Còn nếu muốn đơn giản, thì tô khối vùng đó, vào Edit - Clear Format. Rồi format lại.
 
Anh tô khối vùng trên, vào format Style, chọn normal là xong.

Đúng là chọn Normal là xong, nhưng phải định dạng lại tất cả nếu như biểu mẫu có nhiều kiểu định dạng.


Cái này liên quan gì đến vụ xử lý mảng đây? Chưa hiểu!!!


Đúng vậy, đó là một phần của biểu mấu em cắt ra thôi, hình như sau khi dùng mảng (VBA) để chuyển dữ liệu qua thì nó bị như vậy. Vì không chắc có phải vậy không nên không hỏi ở box thuộc về lập trình.
 
Anh tô khối vùng trên, vào format Style, chọn normal hoặc cái khác, hoặc modify đều được.
Cách khác:
- Quét chọn vùng A2:M4
- Bấm tổ hợp phím Ctrl Shift - tức phím Ctrl và phím Shift và dấu - (dấu - cạnh dấu =)
Xong! Giờ làm gì cũng được
 
Cách khác:
- Quét chọn vùng A2:M4
- Bấm tổ hợp phím Ctrl Shift - tức phím Ctrl và phím Shift và dấu - (dấu - cạnh dấu =)
Xong! Giờ làm gì cũng được

Cách này hay quá ta! Bỏ Border nhưng lại không làm mất đi định dạng. Quay lại macro thì nó ra thế này:

PHP:
Sub Macro2()
'
' Macro2 Macro
'

'
    Selection.Borders(xlLeft).LineStyle = xlNone
    Selection.Borders(xlRight).LineStyle = xlNone
    Selection.Borders(xlTop).LineStyle = xlNone
    Selection.Borders(xlBottom).LineStyle = xlNone
End Sub

Như vậy, sau khi xử lý mảng, ta chạy Selection.Borders(xyz).LineStyle = xlNone trước rồi muốn border kiểu gì do mình tự định lại.
 
Đúng vậy, đó là một phần của biểu mấu em cắt ra thôi, hình như sau khi dùng mảng (VBA) để chuyển dữ liệu qua thì nó bị như vậy.
Lỗi code VBA thì có thể (viết làm sao đó nên bị vậy)
Dứt khoát không phải vì có sử dụng VBA hay có xử lý mảng.
Bao nhiêu người sử dụng VBA và mảng có bị đâu nà?

Như vậy, sau khi xử lý mảng, ta chạy Selection.Borders(xyz).LineStyle = xlNone trước rồi muốn border kiểu gì do mình tự định lại.
Phải nói rõ là "Xử lý mảng và gán xuống sheet"
Nhưng cũng không phải do xử lý mảng và gán xuống sheet mà sinh ra lỗi "không border được". Như trong file bài 1, thậm chí nhấn format cell cũng không hiện ra hộp thoại format, không cứ gì border. Có ai xử lý mảng mà bị như vậy đâu.
 
Tôi có một File với một khối ô mà không thể Border, tại sao lại xảy ra tình trạng này?

Cụ thể trong File là như thế này:

Không thể Border hay bỏ Border trong khối ô màu xanh A2:M4 hoặc A2:A4 được.

Nhưng có thể chọn từng phần hoặc bao nhiều hơn khối ô đó để Border thì lại được?!

Cách 1 anh có thể xoá hết định dạng rồi định dạng Border lại thì sẽ được, nhưng nếu anh sợ định dạng lại tất cả thì làm cách 2 nhanh hơn nhiều

Cách 2. Anh tạo 1 Style không chứa border, sau đó anh chọn Style vừa chọn, là các ô vừa chọn không có Border.
Nếu muốn có Border thì chọn lại Border lại bình thường (cách này không đụng chạm tới các định dạng anh đã làm)
 
Phải nói rõ là "Xử lý mảng và gán xuống sheet"
Nhưng cũng không phải do xử lý mảng và gán xuống sheet mà sinh ra lỗi "không border được". Như trong file bài 1, thậm chí nhấn format cell cũng không hiện ra hộp thoại format, không cứ gì border. Có ai xử lý mảng mà bị như vậy đâu.

Thật tình em không biết vì sao lại bị như vậy, bình thường không bị, nhưng thỉnh thoảng chạy code lại báo lỗi hình như là "LineStyle Class not ... gì gì" đó, hỏng nhớ, kiểm tra lại thì bị hiện tượng trên. Không rõ nguyên nhân nên mới hỏi vậy.

Em thí nghiệm ra một sheet mới, và xử lý mảng rồi gán xuống sheet, lại thấy không có vấn đề gì. Đúng là bực mình thiệt!

Còn một dữ liệu nữa là khi em cho chạy cái này không biết do nó tạo ra? Nhưng cũng đã thử cũng không thấy! ẹc ... ẹc ...

.[A8:Q416].Borders(3).LineStyle = 1
 
Lần chỉnh sửa cuối:
Em thí nghiệm ra một sheet mới, và xử lý mảng rồi gán xuống sheet, lại thấy không có vấn đề gì. Đúng là bực mình thiệt!
Vậy cũng chứng tỏ được rằng cái file kia có vấn đề về Style rồi
Sau khi khắc phục như tôi đã nói, chạy lại code lần nữa xem có lỗi không?
 
Chắc chắn 1 điều là khi dùng VBA gán 1 mảng xuống sheet theo kiểu này:
Range("A2:M4") = ResultArr
Thì vùng được gán xuống đã định dạng thế nào, còn nguyên thế ấy.
Nghĩa là vùng lỗi trong file của bài 1, đã bị lỗi từ trước khi gán xuống.

Nếu gán xuống mà kèm theo vài ba câu lệnh về định dạng như Font, Date, Number, font size, border, ... sẽ thay định dạng cũ bằng định dạng mới.
Nếu thay định dạng không được mà báo lỗi "hình như là "LineStyle Class not ... gì gì" đó, hỏng nhớ," nghĩa là vùng đó bị lỗi sẵn.

Có phải trước đó vùng này đã dùng để gắn Pivot table trong 2007 rồi?
Vì rằng Pivot table 2007 có style, và khi chọn 1 trong các style thì không định dạng kiểu khác được nữa.
Mặc dù chỉ là đoán, nhưng có thể chắc chắn trên 90% như vậy luôn
 
Có phải trước đó vùng này đã dùng để gắn Pivot table trong 2007 rồi?
Vì rằng Pivot table 2007 có style, và khi chọn 1 trong các style thì không định dạng kiểu khác được nữa.


À, Sư phụ ơi, ý này có lẽ là đúng đó. Cái dữ liệu em gán lên mảng là sử dụng dữ liệu từ một Pivot, không biết có phải do nó tạo ra không?

Tại trong code nó cứ nhùng nhằng giữa sheet này với sheet kia rồi đặt name, rồi định dạng tùm lum nên không thể quăng lên đây được!
 
À, Sư phụ ơi, ý này có lẽ là đúng đó. Cái dữ liệu em gán lên mảng là sử dụng dữ liệu từ một Pivot, không biết có phải do nó tạo ra không?
Lại 1 sai lầm chết người nữa.
Trong mảng VBA có chỗ nào lưu trữ thông tin định dạng? Để rồi khi gàn xuống nó lôi định dạng theo?

Bây giờ làm vầy:
Tạo 1 sheet mới
Tạo pivot table trong sheet đó
Chọn 1 style có sẵn định dạng No border cho Pivot đó
Xoá Pivot table đi bằng cách tô khối và nhấn nút Del
Dùng code VBA gán mảng xuống vùng vừa rồi.
 
Lại 1 sai lầm chết người nữa.
Trong mảng VBA có chỗ nào lưu trữ thông tin định dạng? Để rồi khi gàn xuống nó lôi định dạng theo?

Bây giờ làm vầy:
Tạo 1 sheet mới
Tạo pivot table trong sheet đó
Chọn 1 style có sẵn định dạng No border cho Pivot đó
Xoá Pivot table đi bằng cách tô khối và nhấn nút Del
Dùng code VBA gán mảng xuống vùng vừa rồi.

Có khả năng Sư phụ nói là chính xác, có lẽ trước đây biểu mẫu này có sử dụng Pivot Table, giờ em đã chọn lại một kiểu định dạng chuẩn thì không bị lỗi trên nữa!
 
Web KT

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

Back
Top Bottom