Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất trong Excel?

Trong Excel, chúng tôi có thể nhanh chóng điều chỉnh chiều cao hàng để vừa với nội dung ô bằng cách sử dụng AutoFit Row Height nhưng chức năng này sẽ hoàn toàn bỏ qua các ô đã hợp nhất. Có nghĩa là, bạn không thể áp dụng AutoFit Row Height tính năng thay đổi kích thước chiều cao hàng của các ô đã hợp nhất, bạn cần phải điều chỉnh thủ công chiều cao hàng cho từng ô đã hợp nhất. Trong bài viết này, tôi có thể giới thiệu một số phương pháp nhanh chóng để giải quyết vấn đề này.

Tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất với mã VBA

Tab Office Cho phép Chỉnh sửa và Duyệt theo Tab trong Office, và Giúp Công việc của Bạn Dễ dàng hơn Nhiều ...
Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn
  • Tái sử dụng mọi thứ: Thêm các công thức, biểu đồ và bất kỳ thứ gì khác được sử dụng nhiều nhất hoặc phức tạp vào mục yêu thích của bạn và nhanh chóng sử dụng lại chúng trong tương lai.
  • Hơn 20 tính năng văn bản: Trích xuất số từ chuỗi văn bản; Trích xuất hoặc loại bỏ một phần nội dung; Chuyển đổi số và tiền tệ sang từ tiếng Anh.
  • Công cụ hợp nhất: Nhiều Workbook và Sheets thành một; Hợp nhất nhiều ô / hàng / cột mà không làm mất dữ liệu; Hợp nhất các hàng và tổng trùng lặp.
  • Công cụ tách: Chia Dữ liệu thành Nhiều Trang tính Dựa trên Giá trị; Một sổ làm việc cho nhiều tệp Excel, PDF hoặc CSV; Một cột đến nhiều cột.
  • Dán bỏ qua Hàng ẩn / được lọc; Đếm và tổng theo Màu nền; Gửi hàng loạt email được cá nhân hóa cho nhiều người nhận.
  • Bộ lọc siêu: Tạo lược đồ lọc nâng cao và áp dụng cho bất kỳ trang tính nào; Sắp xếp theo tuần, ngày, tần suất và hơn thế nữa; Lọc bằng cách in đậm, công thức, chú thích ...
  • Hơn 300 tính năng mạnh mẽ; Hoạt động với Office 2007-2021 và 365; Hỗ trợ tất cả các ngôn ngữ; Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn.

mũi tên màu xanh bong bóng bên phải Tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất với mã VBA

Giả sử tôi có một trang tính với một số ô đã hợp nhất như hình minh họa sau và bây giờ tôi cần thay đổi kích thước chiều cao hàng ô để hiển thị toàn bộ nội dung, mã VBA dưới đây có thể giúp bạn tự động điều chỉnh chiều cao hàng của nhiều ô đã hợp nhất, vui lòng thực hiện như sau:

doc-autofit-merge-cells-1

1. Giữ ALT + F11 chìa khóa và nó mở Cửa sổ Microsoft Visual Basic for Applications.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

Mã VBA: Tự động điều chỉnh chiều cao hàng của nhiều ô được hợp nhất
Option Explicit
Public Sub AutoFitAll()
  Call AutoFitMergedCells(Range("a1:b2"))
   Call AutoFitMergedCells(Range("c4:d6"))
    Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
  Dim tHeight As Integer
  Dim iPtr As Integer
  Dim oldWidth As Single
  Dim oldZZWidth As Single
  Dim newWidth As Single
  Dim newHeight As Single
  With Sheets("Sheet4")
    oldWidth = 0
    For iPtr = 1 To oRange.Columns.Count
      oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
    Next iPtr
    oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
    oRange.MergeCells = False
    newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
    oldZZWidth = .Range("ZZ1").ColumnWidth
    .Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
    .Range("ZZ1").WrapText = True
    .Columns("ZZ").ColumnWidth = oldWidth
    .Rows("1").EntireRow.AutoFit
    newHeight = .Rows("1").RowHeight / oRange.Rows.Count
    .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
    oRange.MergeCells = True
    oRange.WrapText = True
    .Range("ZZ1").ClearContents
    .Range("ZZ1").ColumnWidth = oldZZWidth
  End With
End Sub

Ghi chú:

(1.) Trong đoạn mã trên, bạn có thể thêm các phạm vi mới chỉ cần sao chép Gọi AutoFitMergedCells (Phạm vi ("a1: b2")) tập lệnh nhiều lần tùy thích và thay đổi các phạm vi ô đã hợp nhất theo nhu cầu của bạn.

(2.) Và bạn nên thay đổi tên trang tính hiện tại Sheet4 đến tên trang tính đã sử dụng của bạn.

3. Sau đó nhấn F5 để chạy mã này và bây giờ, bạn có thể thấy tất cả các ô được hợp nhất đã được tự động điều chỉnh nội dung ô của chúng, xem ảnh chụp màn hình:

doc-autofit-merge-cells-1


Bài viết liên quan:

Làm thế nào để tự động điều chỉnh chiều rộng cột trong Excel?


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng

<p >


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
</ p >

Nhận xét (26)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã này khiến các hàng bổ sung bị xóa. Tôi có các số ở phía bên trái và các cột bên cạnh nó là dữ liệu được hợp nhất / gói. Ví dụ: trong Mô tả công việc, hãy liệt kê các trách nhiệm với các con số theo sau là giải thích về nhiệm vụ. Có suy nghĩ gì không? Thanks.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã nhập thông tin sau, nhưng tôi nhận được thông báo lỗi "Lỗi thời gian chạy '13': Nhập không khớp" Trợ giúp? Tùy chọn Rõ ràng công khai Sub AutoFitAll () Gọi AutoFitMergedCells (Range ("a8: h8")) Gọi AutoFitMergedCells (Range ("a10: h10")) Gọi AutoFitMergedCells (Range ("a11: h11")) Gọi AutoFitMergedCells (Range ("b17" : h17 ")) Gọi AutoFitMergedCells (Range (" b22: h22 ")) Gọi AutoFitMergedCells (Range (" b24: h24 ")) Gọi AutoFitMergedCells (Range (" a26: h26 ")) Gọi AutoFitMergedCells (Range (" a28: h28 " ")) End Sub Public Sub AutoFitMergedCells (oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets (" Thư chào hàng ") oldWidth = 0 For iPtr = 1 Đến oRange.Columns.Count oldWidth = oldWidth + .Cells (1, oRange.Column + iPtr - 1) .ColumnWidth Tiếp theo iPtr oldWidth = .Cells (1, oRange.Column) .ColumnWidth + .Cells (1, oRange. Column + 1) .ColumnWidth oRange.MergeCells = False newWidth = Len (.Cells (oRange.Row, oRange.Column) .Value) oldZZWidth = .Range ("ZZ1"). ColumnWidth .Range ("ZZ1") = Left ( .Cells (oRange.Row, oRange.Column) .Value, n ewWidth) .Range ("ZZ1"). WrapText = True .Columns ("ZZ"). ColumnWidth = oldWidth .Rows ("1"). EntireRow.AutoFit newHeight = .Rows ("1"). rowHeight / oRange.Rows .Count .Rows (CStr (oRange.Row) & ":" & CStr (oRange.Row + oRange.Rows.Count - 1)). RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range ("ZZ1 ") .ClearContents .Range (" ZZ1 "). ColumnWidth = oldZZWidth End With End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn rất nhiều cho mã! Cuối cùng thì nó cũng hoạt động, nhưng ... Chiều cao hàng của tôi trở nên quá cao. Có một giải pháp cho? Cảm ơn rất nhiều! Đây là mã của tôi: Tùy chọn Rõ ràng công khai Sub AutoFitAll () Gọi AutoFitMergedCells (Range ("b162: i162")) Gọi AutoFitMergedCells (Range ("b166: i166")) Gọi AutoFitMergedCells (Range ("b168: i168")) Gọi AutoFitMergedCells (Range : i170 ")) Gọi AutoFitMergedCells (Range (" b170: i172 ")) End Sub Public Sub AutoFitMergedCells (oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim old Single With Sheets ("Rapport") oldWidth = 172 For iPtr = 0 To oRange.Columns.Count oldWidth = oldWidth + .Cells (1, oRange.Column + iPtr - 1) .ColumnWidth Tiếp theo iPtr oldWidth = .Cells (1, oRange .Column) .ColumnWidth + .Cells (1, oRange.Column + 1) .ColumnWidth oRange.MergeCells = False newWidth = Len (.Cells (oRange.Row, oRange.Column) .Value) oldZZWidth = .Range ("ZZ1" ) .ColumnWidth .Range ("ZZ1") = Left (.Cells (oRange.Row, oRange.Column) .Value, newWidth) .Range ("ZZ1"). WrapText = True .Columns ("ZZ"). ColumnWidth = oldWidth .Rows ("1"). EntireRow.AutoFit newHeight =. Hàng ("1"). RowHeight / oRange.Rows.Count .Rows (CStr (oRange.Row) & ":" & CStr (oRange.Row + oRange.Rows.Count - 1)). RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range ("ZZ1"). ClearContents .Range ("ZZ1"). ColumnWidth = oldZZWidth End With End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Danielle, tôi đã gặp phải vấn đề tương tự, khi chạy macro lần thứ hai ở hàng đầu tiên. Mã sử ​​dụng .Rows ("1"). EntireRow.AutoFit (dòng 26) và nếu bạn chạy trên, nói A1: B1, ô A1 của bạn có WordWrapping được đặt thành ON từ dòng 30. Giải pháp đơn giản nhất dường như là chuyển WordWrapping tắt ở đầu sub. Thêm oRange.WrapText = True vào giữa dòng 13 và 14 và bạn sẽ ổn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì ô "trợ giúp" của ZZ1 đang sử dụng hàng đầu tiên (cột ZZ, hàng 1), nếu có BẤT KỲ ĐIỀU GÌ trong hàng 1 cao hơn văn bản trong hàng bạn muốn điều chỉnh, chiều cao kết quả của bạn sẽ cao hơn những gì bạn muốn . Để khắc phục điều này, tôi đã đặt ô trợ giúp cùng cột với cột đầu tiên trong oRange và đặt số hàng thành hàng cuối cùng trong Excel. Hy vọng điều này sẽ giúp bạn thích nó không tôi. số 8) Mã của tôi: Tùy chọn Rõ ràng công khai Sub AutoFitAll () Gọi AutoFitMergedCells (Phạm vi ("A2: Z2")) Kết thúc Sub Public Sub AutoFitMergedCells (oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim cũ Chiều rộng As Single Dim cũ ZZWidth As Single Dim mới newHeight As Single With Sheets ("Sheet1") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells (1, oRange.Column + iPtr - 1) .ColumnWidth Tiếp theo iPtr oldWidth = .Cells (1 , oRange.Column) .ColumnWidth + .Cells (1, oRange.Column + 1) .ColumnWidth oRange.MergeCells = False newWidth = Len (.Cells (oRange.Row, oRange.Column) .Value) oldZZWidth = .Cells (" 1048576 ", oRange.Column) .ColumnWidth .Cells (" 1048576 ", oRange.Column) = Left (.Cells (oRange.Row, oRange.Column) .Value, newWidth) .Cells (" 1048576 ", oRange.Column) .WrapText = True .Columns (oRange.Column) .ColumnWidth = oldWidth .Rows ("1048576"). EntireRow.AutoFit newHeight = .Rows ("1048576"). RowHeight / oRange.Rows.Count .Rows (CStr (oRange. " Hàng) & ":" & CStr (oRange.Row + oRange.Rows.Co un - 1)). RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Cells ("1048576", oRange.Column) .ClearContents .Cells ("1048576", oRange.Column) .ColumnWidth = oldZZWidth End With End Phụ
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn rất nhiều cho mã! Tôi có cùng một vấn đề với mã này chẳng hạn như DANIËLLE_01.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn vì mã, khá nhiều thứ tôi cần. Tuy nhiên, có hai nhận xét: 1) khi tôi chạy macro ở cùng hàng với ô "helper" (ZZ1), autofit (dòng 26) sẽ lộn xộn, vì toàn bộ chuỗi được lắp vào một ô narow. Tôi khuyên bạn nên thêm oRange.WrapText = False ngay từ đầu (hoặc di chuyển ô trợ giúp ra chỗ khác, nếu có thể). 2) mục đích của dòng 19 là gì? Bạn điền oldWidth vào dòng 16-18, nhưng sau đó ghi đè phép tính ở dòng 19, chỉ sử dụng hai cột. Khi tôi thử phụ trên một ô hợp nhất rộng ba cột, nó hoạt động tốt hơn khi tôi bỏ qua dòng ... Cảm ơn một lần nữa
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn rất nhiều cho mã. Có cách nào để làm cho macro chạy ngay khi bạn nhập văn bản vào một trường và nhấn enter không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Rực rỡ nhưng cũng chính xác vấn đề giống như Danielle, hiện tại hàng quá cao. Xin ai đó giúp đỡ!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hoạt động hoàn hảo, nhưng hàng quá cao! Chúng ta có thể sửa lỗi này không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn đã đăng bài này, tôi giỏi excel và thường có thể tìm ra các điều chỉnh của mình nhưng dường như tôi không thể tìm ra cách khắc phục cho một vấn đề mà tôi đang gặp phải hoặc nếu một vấn đề còn tồn tại. Tôi có một lượng lớn dữ liệu trong các ô (vượt quá giới hạn chiều cao của một ô là 409.5). Vấn đề là VBA này chạy với cùng một giới hạn. Vì vậy, một số dữ liệu của tôi bị cắt bỏ mặc dù các hàng được hợp nhất và phụ cấp chiều cao ô kết hợp là 819, vì VBA điều chỉnh chiều cao ô dựa trên ô ZZ1 duy nhất. Có cách nào để điều chỉnh mã để làm cho nó cho phép chiều cao ô đã điều chỉnh bao gồm chiều cao có sẵn trong các hàng đã hợp nhất không hay tôi đang yêu cầu điều không thể? Thanks.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn vì mật mã. Tuy nhiên, chiều cao của các hàng của tôi có điều chỉnh, nhưng bây giờ là đủ. Làm thế nào tôi có thể khắc phục điều này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì ô "trợ giúp" của ZZ1 đang sử dụng hàng đầu tiên (cột ZZ, hàng 1), nếu có BẤT KỲ ĐIỀU GÌ trong hàng 1 cao hơn văn bản trong hàng bạn muốn điều chỉnh, chiều cao kết quả của bạn sẽ cao hơn những gì bạn muốn . Để khắc phục điều này, tôi đã đặt ô trợ giúp cùng cột với cột đầu tiên trong oRange và đặt số hàng thành hàng cuối cùng trong Excel. Hy vọng điều này sẽ giúp bạn thích nó không tôi. số 8) Mã của tôi: Tùy chọn Rõ ràng công khai Sub AutoFitAll () Gọi AutoFitMergedCells (Phạm vi ("A2: Z2")) Kết thúc Sub Public Sub AutoFitMergedCells (oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim cũ Chiều rộng As Single Dim cũ ZZWidth As Single Dim mới newHeight As Single With Sheets ("Sheet1") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells (1, oRange.Column + iPtr - 1) .ColumnWidth Tiếp theo iPtr oldWidth = .Cells (1 , oRange.Column) .ColumnWidth + .Cells (1, oRange.Column + 1) .ColumnWidth oRange.MergeCells = False newWidth = Len (.Cells (oRange.Row, oRange.Column) .Value) oldZZWidth = .Cells (" 1048576 ", oRange.Column) .ColumnWidth .Cells (" 1048576 ", oRange.Column) = Left (.Cells (oRange.Row, oRange.Column) .Value, newWidth) .Cells (" 1048576 ", oRange.Column) .WrapText = True .Columns (oRange.Column) .ColumnWidth = oldWidth .Rows ("1048576"). EntireRow.AutoFit newHeight = .Rows ("1048576"). RowHeight / oRange.Rows.Count .Rows (CStr (oRange. " Hàng) & ":" & CStr (oRange.Row + oRange.Rows.Co un - 1)). RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Cells ("1048576", oRange.Column) .ClearContents .Cells ("1048576", oRange.Column) .ColumnWidth = oldZZWidth End With End Phụ
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã của tôi thậm chí sẽ không chạy Tôi chỉ gặp lỗi biên dịch khi tôi cố gắng gọi AutoFitMergedCells - Hàm mong đợi hoặc biến?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang cố gắng hiểu sự cần thiết của Dòng 19. Bạn đang chỉ định lại một giá trị cho OldWidth. Bạn có thể vui lòng giải thích?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã tạo phần bổ trợ cho Tự động điều chỉnh chiều cao hàng của nhiều ô được hợp nhất.
Vui lòng sử dụng điều này, nếu bạn muốn tự động điều chỉnh hàng cao.
[Phát hành Ver2.6 · toowaki / AutoFitRowEx · GitHub]
https://github.com/toowaki/AutoFitRowEx/releases/tag/2.6.2
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này là khá hữu ích, cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi tin rằng lý do mà độ cao của hàng không được tính toán chính xác có liên quan đến những dòng mã này
Đối với iPtr = 1 Đến oRange.Columns.Count
oldWidth = oldWidth + .Cells (1, oRange.Column + iPtr - 1) .ColumnWidth
IPtr tiếp theo
oldWidth = .Cells (1, oRange.Column) .ColumnWidth + .Cells (1, oRange.Column + 1) .ColumnWidth

Biến OldWidth được đặt thành tổng chiều rộng của cột trong phạm vi, nhưng vì một số lý do, nó được đặt lại thành chỉ chiều rộng của hai cột đầu tiên. Do đó, 3 dòng mã đầu tiên được tạo dư thừa bởi dòng thứ 4. Khi tôi xóa dòng thì tốt hơn nhiều, nhưng vấn đề khác mà tôi nhận thấy là bạn phải đảm bảo rằng phông chữ và kích thước phông chữ của ô tạm thời (ZZ1 trong mã ví dụ) phải khớp với phông chữ và kích thước của các ô đã hợp nhất. ; nếu không, văn bản sẽ không bọc theo cùng một cách với các ô đã hợp nhất bọc và có thể không có chiều cao chính xác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
không hoạt động, mật khẩu bạn đặt trong mã của bạn không hoạt động trong mã của bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này không hiệu quả với tôi}
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn, điều đó đã giúp tôi có một tờ giấy mà tôi đã không hài lòng trong nhiều năm.

Tôi đã thay đổi mọi thứ xung quanh một chút, các ô đã hợp nhất của tôi đều nằm trong một cột vì vậy tôi đã tính toán điều đó bên ngoài vòng lặp và chuyển nó. Tôi cũng đã chèn một Sheet1 bị ẩn và thao tác với các cột / hàng ở đó để không ảnh hưởng đến trang tính mà tôi đang làm việc. Các tham chiếu có lẽ nên rõ ràng hơn:

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



Dim dblHeight As Double



Với oRange.Parent

oRange.MergeCells = Sai

Sheet1.Range ("A1") = oRange.Cells (1, 1) .Value

Sheet1.Range ("A1"). WrapText = True

Sheet1.Columns (1) .ColumnWidth = dblWidth

Sheet1.Rows (1) .EntireRow.AutoFit

dblHeight = Sheet1.Rows (1) .RowHeight / oRange.Rows.Count

oRange.Parent.Rows (oRange.Row) .Resize (oRange.Rows.Count) .RowHeight = newHeight

oRange.MergeCells = Đúng

oRange.WrapText = True

Sheet1.Range ("A1"). ClearContents

Kết thúc với



End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đăng nó, sao chép / dán bit tôi. Ngoài ra, với các tham chiếu trang tính rõ ràng, Với không cần thiết:

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



oRange.MergeCells = Sai

Sheet1.Range ("A1") = oRange.Cells (1, 1) .Value

Sheet1.Range ("A1"). WrapText = True

Sheet1.Columns (1) .ColumnWidth = dblWidth

Sheet1.Rows (1) .EntireRow.AutoFit

oRange.Parent.Rows (oRange.Row) .Resize (oRange.Rows.Count) .RowHeight _

= Sheet1.Rows (1) .RowHeight / oRange.Rows.Count

oRange.MergeCells = Đúng

oRange.WrapText = True



End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có giới hạn về kích thước - nếu tổng chiều cao được yêu cầu lớn hơn 409.5, nó sẽ chỉ làm những gì phù hợp với 409.5 và trải rộng nó giữa chiều cao của các ô đã hợp nhất và bạn sẽ không thấy phần còn lại. Tôi đã hy vọng điều này sẽ giải quyết cho độ dài văn bản lớn hơn chiều cao hàng tối đa (409.5). Tôi nghĩ bạn có thể cần phải lặp lại và tách văn bản thành những gì có thể vừa với chiều cao tối đa đầu tiên là 409.5, sau đó đặt phần còn lại vào một ô khác (ZZ2) và cứ tiếp tục như vậy cho đến khi phù hợp, sau đó đếm số hàng trong mỗi ô rồi lấy tổng chiều cao yêu cầu.
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL