Macro Excel - Kích thước hình dạng mong muốn không tương ứng với Chiều cao và Chiều rộng chính xác.
Xin chào,
Tôi đang cố gắng tạo một macro Excel để tự động điều chỉnh kích thước hộp theo đơn vị đo (inch) mà người dùng nhập vào.
Dưới đây là bức ảnh mô tả tất cả những gì tôi đã có cho đến nay.
Bạn sẽ thấy trong chiếc hộp màu xanh sáng mà tôi có
kích thước D = 20 inch (đôi khi được viết là 20") và
kích thước L = 100 inch (100").
Bên dưới là khung màu cam tự động điều chỉnh kích thước cho phù hợp với kích thước này (hoặc... đáng lẽ ra phải như vậy). Bên dưới khung này là mã macro cho trang tính.
Ngay phía bên phải, bạn sẽ thấy các thiết lập ĐỊNH DẠNG HÌNH DẠNG cho hộp màu cam này. Bên cạnh Chiều cao và Chiều rộng, bạn sẽ nhận thấy rằng các con số không khớp với các giá trị mà người dùng đã nhập.
Tôi đang cố gắng tìm hiểu lý do tại sao... Ở giữa đoạn này, dường như mặc dù tôi nhập 100" cho chiều dài (L), nhưng giá trị chiều rộng (Width) lại tuân theo công thức: Width = 0.01391*(Dimension L)-0.0024
Đối với chiều D, nó cũng thực hiện điều tương tự: Chiều cao = 0,01391 * (Chiều D) - 0,0024
Làm thế nào để kích thước do người dùng nhập khớp với kích thước trong cài đặt hộp? Tôi cảm thấy mình đã gần thành công rồi nhưng dường như đang gặp khó khăn ở bước cuối cùng.
Trả lời:
Chiều rộng = 0,01391 * (Chiều dài) - 0,0024
Điều đó sai.
Chiều rộng và chiều cao của một đối tượng hình dạng (và hầu hết các đối tượng khác) được tính bằng điểm.
https://docs.microsoft.com/en-ie/office/vba/api/excel.shape.width
Và 1 point bằng 1/72 inch.
https://docs.microsoft.com/en-ie/office/vba/language/glossary/vbe-glossary#point
Vì thế:
Dim Sh As Shape
Đặt Sh = ActiveSheet.Shapes(1)
Chiều cao = Khoảng cách("D6") / (1 / 72)
Chiều rộng = Khoảng cách("H6") / (1 / 72)
Andreas.
Comments
Post a Comment