Function về điều chỉnh chiều cao hàng theo tham số cho trước

Liên hệ QC

Mr.hieudoanxd

Thành viên thường trực
Tham gia
25/10/19
Bài viết
322
Được thích
150
Chào cả nhà ạ.
Em có bài toán thế này. Em cần viết hàm Function điều chỉnh chiều cao hàng chỉ định theo tham số cho trước dạng như sau:
Function (rng as range, num as long) as ......
nhưng do kiến thức hạn hẹp nên chưa đủ khả năng làm được, Mong các cao nhân giúp đỡ
 
Chào cả nhà ạ.
Em có bài toán thế này. Em cần viết hàm Function điều chỉnh chiều cao hàng chỉ định theo tham số cho trước dạng như sau:
Function (rng as range, num as long) as ......
nhưng do kiến thức hạn hẹp nên chưa đủ khả năng làm được, Mong các cao nhân giúp đỡ
Giả sử làm được cái Function(), đúng hơn là 1 cái Sub() như ý của bạn thì chiều cao hàng này không cố định được, nó vẫn sẽ nhảy tưng tưng sau khi có tác động của các thao tác trên cell.
 
Upvote 0
Giả sử làm được cái Function(), đúng hơn là 1 cái Sub() như ý của bạn thì chiều cao hàng này không cố định được, nó vẫn sẽ nhảy tưng tưng sau khi có tác động của các thao tác trên cell.
Đúng rồi bạn, mình đang muốn nó nhảy theo ý đó mà. Mình có lý do để cần làm việc đó chứ ko phải cho vui đâu ạ
Không biết bạn đã gặp trường hợp này chưa? Khi bạn ở màn hình thao tác excel thì các chữ nó vừa văn trang in.... nhưng khi bạn chuyển sang chế độ in ấn thì nó bị thừa ra bạn theo dõi ví dụ mình gửi nhé.
Nếu sub() mình không bàn, nhưng khi phải sử dụng 1 số lượng lớn các ô thì code sẽ rất giật mình muốn có hàm dạng UDF sẽ nhanh hơn rất nhiều
Mở rộng ra nữa mình muốn viết UDF cho trường hợp tô mầu, căn lề, tạo style riêng...... nhưng do trình độ hạn hẹp ko nghĩ được.
Diễn đàn không bác nào giúp ạ. :((
 

File đính kèm

  • Ví dụ.xls
    64.5 KB · Đọc: 9
Upvote 0
Bài viết em chỉm hẳn rồi ạ, không ai giúp em ạ. huhuhuhuhuhu
 
Upvote 0
Bài viết em chỉm hẳn rồi ạ, không ai giúp em ạ. huhuhuhuhuhu
Tôi nghĩ không làm được Function như bạn muốn vì Function chỉ trả về giá trị chứ không tác động được đến thuộc tính của Range (ngoại trừ dùng ClassModule có được không thì tôi mù tịt)
 
Upvote 0
Tôi nghĩ không làm được Function như bạn muốn vì Function chỉ trả về giá trị chứ không tác động được đến thuộc tính của Range (ngoại trừ dùng ClassModule có được không thì tôi mù tịt)
Mình thấy có anh hesanbi trước có viết hàm UDF cho việc Tự động co giãn dòng, nên em nghĩ khả năng vẫn được đó ạ. :(
 
Upvote 0
Bạn tìm lại bài ấy chép cái link gửi vào đây cho tôi tham khảo tí. Cảm ơn trước!
đây bạn
 
Upvote 0
đây bạn
Hic! Chắc phải ngắm thôi chứ cỡ VBA tôi thì không chạm tới được.
 
Upvote 0
đây bạn
Bê nguyên code sang xài thôi bạn!!
 
Upvote 0
Đúng rồi bạn, mình đang muốn nó nhảy theo ý đó mà. Mình có lý do để cần làm việc đó chứ ko phải cho vui đâu ạ
Không biết bạn đã gặp trường hợp này chưa? Khi bạn ở màn hình thao tác excel thì các chữ nó vừa văn trang in.... nhưng khi bạn chuyển sang chế độ in ấn thì nó bị thừa ra bạn theo dõi ví dụ mình gửi nhé.
Nếu sub() mình không bàn, nhưng khi phải sử dụng 1 số lượng lớn các ô thì code sẽ rất giật mình muốn có hàm dạng UDF sẽ nhanh hơn rất nhiều
Mở rộng ra nữa mình muốn viết UDF cho trường hợp tô mầu, căn lề, tạo style riêng...... nhưng do trình độ hạn hẹp ko nghĩ được.
Diễn đàn không bác nào giúp ạ. :((
Cách mình làm thủ công cho trường hợp này là các văn bản chuyển qua Excel thì nội dung mình luôn để riêng 1 cột phụ (cột này không Merge để chiều cao ô co dãn theo Wrap Text và độ rộng cột bằng trang in), hàng tại vùng dữ liệu in sẽ đặt công thức = hàng tại cột phụ này. Và khi bạn có Merge các ô trong vùng in thì độ cao của ô sẽ luôn khớp với ô tại cột phụ (do các ô khi Merge sẽ không Wrap Text được). Mình hay dùng cách này cho các hợp đồng chuyển qua làm bằng file excel.
 
Upvote 0
Cách mình làm thủ công cho trường hợp này là các văn bản chuyển qua Excel thì nội dung mình luôn để riêng 1 cột phụ (cột này không Merge để chiều cao ô co dãn theo Wrap Text và độ rộng cột bằng trang in), hàng tại vùng dữ liệu in sẽ đặt công thức = hàng tại cột phụ này. Và khi bạn có Merge các ô trong vùng in thì độ cao của ô sẽ luôn khớp với ô tại cột phụ (do các ô khi Merge sẽ không Wrap Text được). Mình hay dùng cách này cho các hợp đồng chuyển qua làm bằng file excel.
Mình cũng đã áp dụng cách của bạn rồi. Tuy nhiên có vấn đề này, có thể do khả năng diễn đạt mình không được tốt nên các bạn chưa hiểu ý của mình. Khi sử dụng code dãn dòng ô gộp và các của bạn Wrap text trong excel bạn để ở chế độ xem trong excel rất đẹp, vừa nhưng sang in ấn nó lại bị thừa dòng. như ảnh mình gửi ở chế độ xem trên excel 2.jpg
Còn đây là khi in ấn ra
1.jpg
khi mình thực hiện sub() dãn dòng theo số lượng kí tự của ô hàm len() trong vba thì sẽ ntn 3.jpg
kết quả khi in4.jpg
Sub thì mình làm đc rồi nhưng function thì mình chưa làm đc....
Bài đã được tự động gộp:

Hic! Chắc phải ngắm thôi chứ cỡ VBA tôi thì không chạm tới được.
Bác cứ khiêm tốn. :D
 
Upvote 0
Tại mục Styles > chuột phải vào Normal > modify > tab font chọn lại Time New Roman thử được không.
Bạn tham khảo thêm bài này #14 giống trường hợp của bạn do cái Styles mà bác Ndu đã hướng dẫn
 

File đính kèm

  • Styles.JPG
    Styles.JPG
    22.5 KB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom