Tính độ rộng tông các cột hay hàng

Liên hệ QC

quanglenb

Thành viên hoạt động
Tham gia
2/11/19
Bài viết
136
Được thích
25
Chào các anh/chị trên diễn đàn, các anh/chị cho em hỏi
Có cách nào để tính được tổng độ rộng của các cột hay hàng giúp em mới ạ!
Trong hình em muốn tính tổng độ rông hàng tương ứng với dòng 1,2,3
Tính tổng độ rông cột A, B, C, D, E, F, G
Dĩ diên không phải xem độ rông từng cột hay dòng rồi cộng lại thủ công
Em xin cảm ơn!
Tổng độ rông cột b2.png
b1.pngb2.png
 
Chào các anh/chị trên diễn đàn, các anh/chị cho em hỏi
Có cách nào để tính được tổng độ rộng của các cột hay hàng giúp em mới ạ!
Trong hình em muốn tính tổng độ rông hàng tương ứng với dòng 1,2,3
Tính tổng độ rông cột A, B, C, D, E, F, G
Dĩ diên không phải xem độ rông từng cột hay dòng rồi cộng lại thủ công
Em xin cảm ơn!
Tổng độ rông cột View attachment 228093
View attachment 228092View attachment 228093
Biết 1 cách tương tự, chi tiết tham khảo bên dưới:
Sub a() Dim dA#, dB#, dC# dA = Range("A1").EntireColumn.Width dB = Range("B1").EntireColumn.Width dC = Range("C1").EntireColumn.Width MsgBox "Do rong cot A ; B; C lan luot la : " & dA & " ;" & dB & " ;" & dC & Chr(10) _ & "Tong chieu rong cot A+B+C la :" & dA + dB + dC End Sub
 
Biết 1 cách tương tự, chi tiết tham khảo bên dưới:
Sub a() Dim dA#, dB#, dC# dA = Range("A1").EntireColumn.Width dB = Range("B1").EntireColumn.Width dC = Range("C1").EntireColumn.Width MsgBox "Do rong cot A ; B; C lan luot la : " & dA & " ;" & dB & " ;" & dC & Chr(10) _ & "Tong chieu rong cot A+B+C la :" & dA + dB + dC End Sub
Cám ơn anh!
Mỗi lần cần thêm cột nào để tính tổng vào code để thêm đúng không anh?
 
Cám ơn anh!
Mỗi lần cần thêm cột nào để tính tổng vào code để thêm đúng không anh?
Thành viên càng mô tả chính xác yêu cầu , mục đích và kết quả mong muốn thì hiệu quả tương tác giữ bạn và các thành viên khác càng cao; đat yêu cầu thời gian - kỹ thuật
 
Có cách nào khác không ạ?
Ý em là mỗi lần tính tổng độ rộng các cột hay hàng thì phải vào code để chỉnh sửa, giả sử cần tính tổng chiều cao nhiều cột hay hàng thì phải liệt kê những hàg và cột đó và điền tên vào code.
Cách khác thì xem ở sheet2 của File.
 

File đính kèm

  • Chieu Cao va Rong.xlsm
    16.4 KB · Đọc: 33
Anh ơi! Cho em hỏi thêm ạ:
Anh giúp em đổi đơn vị ra luôn cm được không ạ?
Đơn vị tính anh giúp em ở trên là đơn vị gì vậy anh?
Đơn vị là Points
72 Points = 2.54 Cm
1 Points = 1/72*2.54 Cm

Cách lấy độ rộng Cột chọn:
PHP:
Selection(1,Selection.Columns.Count).Left + Selection(1,Selection.Columns.Count).Width  - Selection(1,1).Left
Cách lấy chiều cao Hàng chọn:
PHP:
Selection(Selection.Rows.Count, 1).Top + Selection(Selection.Rows.Count,1).Height - Selection(1,1).Top

Cách lấy độ rộng và chiều cao đã xác định:
Set RNG = [B4:C25]
Thay thế toàn bộ Selection thành RNG


Hàm (Tạo một Module và copy code dưới vào):
PHP:
Public RSelection As Range
Function SelectionWidth() As Long
  Application.Volatile
  Dim Rng As Range
  If Not RSelection Is Nothing Then
    Set Rng = RSelection
    SelectionWidth = Rng(1, Rng.Columns.Count).Left + Rng(1, Rng.Columns.Count).Width - Rng(1, 1).Left
  End If
End Function

Function SelectionHeight() As Long
  Application.Volatile
  Dim Rng As Range
  If Not RSelection Is Nothing Then
    Set Rng = RSelection
    SelectionHeight = Rng(Rng.Rows.Count, 1).Top + Rng(Rng.Rows.Count, 1).Height - Rng(1, 1).Top
  End If
End Function
Function RangeWidth(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Rng Is Nothing Then Set Rng = RSelection
  If Rng Is Nothing Then Exit Function
  RangeWidth = Rng(1, Rng.Columns.Count).Left + Rng(1, Rng.Columns.Count).Width - Rng(1, 1).Left
End Function

Function RangeHeight(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Rng Is Nothing Then Set Rng = RSelection
  If Rng Is Nothing Then Exit Function
  RangeHeight = Rng(Rng.Rows.Count, 1).Top + Rng(Rng.Rows.Count, 1).Height - Rng(1, 1).Top
End Function

Copy đoạn này vào Code Worksheet đang thực hiện:

PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set RSelection = Target
  Application.Calculate
End Sub
 
Lần chỉnh sửa cuối:
Đơn vị là Points
72 Points = 2.54 Cm
1 Points = 1/72*2.54 Cm

Cách lấy độ rộng Cột chọn:
PHP:
Selection(1,Selection.Columns.Count).Left + Selection(1,Selection.Columns.Count).Width  - Selection(1,1).Left
Cách lấy chiều cao Hàng chọn:
PHP:
Selection(Selection.Rows.Count, 1).Top + Selection(Selection.Rows.Count,1).Height - Selection(1,1).Top

Cách lấy độ rộng và chiều cao đã xác định:
Set RNG = [B4:C25]
Thay thế toàn bộ Selection thành RNG


Hàm (Tạo một Module và copy code dưới vào):
PHP:
Public RSelection As Range
Function SelectionWidth(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Not RSelection Is Nothing Then
    Set Rng = RSelection.EntireColumn
    Debug.Print Rng.Address
    SelectionWidth = Rng(1, Rng.Columns.Count).Left + Rng(1, Rng.Columns.Count).Width - Rng(1, 1).Left
  End If
End Function

Function SelectionHeight(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Not RSelection Is Nothing Then
    Set Rng = RSelection
    SelectionHeight = Rng(Rng.Rows.Count, 1).Top + Rng(Rng.Rows.Count, 1).Height - Rng(1, 1).Top
  End If
End Function
Function RangeWidth(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Rng Is Nothing Then Set Rng = RSelection
  If Rng Is Nothing Then Exit Function
  RangeWidth = Rng(1, Rng.Columns.Count).Left + Rng(1, Rng.Columns.Count).Width - Rng(1, 1).Left
End Function

Function RangeHeight(Optional ByVal Rng As Range) As Long
  Application.Volatile
  If Rng Is Nothing Then Set Rng = RSelection
  If Rng Is Nothing Then Exit Function
  RangeHeight = Rng(Rng.Rows.Count, 1).Top + Rng(Rng.Rows.Count, 1).Height - Rng(1, 1).Top
End Function
Mã:
Selection(Selection.Rows.Count, 1).Top + Selection(Selection.Rows.Count,1).Height - Selection(1,1).Top

Copy đoạn này vào Code Worksheet đang thực hiện:

PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set RSelection = Target
  Application.Calculate
End Sub
Em đã copy code vào sheet hiện hành và module.
Sao vẫn không được vậy ạ?
Cách lấy độ Rộng cột chọn và cách lấy chiều cao Hàng chọn có 02 mã code sử dụng sao vậy ạ?
02 mã đó như sau:
Mã:
Selection(1,Selection.Columns.Count).Left + Selection(1,Selection.Columns.Count).Width  - Selection(1,1).Left

Mã:
Selection(Selection.Rows.Count, 1).Top + Selection(Selection.Rows.Count,1).Height - Selection(1,1).Top
Anh giúp em mới nhé!
 

File đính kèm

  • file.xlsm
    14.4 KB · Đọc: 4
Lần chỉnh sửa cuối:
Sau khi copy xong thì bạn dùng công thức tự tạo ở trên vào Sheet chứa code và vào Ô nào bạn muốn:
4 hàm tương tự cách dùng như nhau:
=SelectionWidth()
=SelectionHeight()
=RangeWidth(D2:G200)
=RangeHeight(D2:Z200)
 
Lần chỉnh sửa cuối:
Sau khi copy xong thì bạn dùng công thức tự tạo ở trên vào Sheet chứa code và vào Ô nào bạn muốn:
4 hàm tương tự cách dùng như nhau:
=SelectionWidth(A1)
=SelectionHeight(A1)
=RangeWidth(D2:G200)
=RangeHeight(D2:Z200)
Vâng, em cám ơn anh!
Hàm =SelectionWidth() bị lỗi anh ạ! 3 hàm còn lại thì không vấn đề gi ạ!44444.png
 

File đính kèm

  • pl.xlsm
    16.1 KB · Đọc: 7
Trong code dư EntireColumn , bạn xóa đi
 
Bạn copy lại
 
Anh ơi cho em hỏi đơn vị mặc định độ rông cột (khi xác định độ rộng cột) trong excel là đơn vị gì vây anh?
Như hình em đăng dưới đây độ rộng cột là 8,11, thì đơn vị của nó là gì vậy anh?
Em nghĩ không phải pt, không phải px.
eeeeee.png
 
Anh ơi cho em hỏi đơn vị mặc định độ rông cột (khi xác định độ rộng cột) trong excel là đơn vị gì vây anh?
Như hình em đăng dưới đây độ rộng cột là 8,11, thì đơn vị của nó là gì vậy anh?
Em nghĩ không phải pt, không phải px.
Độ rộng này được chuẩn hóa dựa theo tỉ lệ Font chữ
Và đơn vị điều chỉnh độ rộng này là Pica

Đơn vị độ rộng sẽ là: 1 Pica = 12 Points
Tỉ lệ chiều cao tương ứng là: 1*4/3 Points

Tất cả nên được quy về Points khi thực hiện tính toán trong VBA. Khi trả ngược giá trị thì ta nhân theo tỉ lệ tương ứng.
 
Anh ơi cho em hỏi đơn vị mặc định độ rông cột (khi xác định độ rộng cột) trong excel là đơn vị gì vây anh?
Như hình em đăng dưới đây độ rộng cột là 8,11, thì đơn vị của nó là gì vậy anh?
Em nghĩ không phải pt, không phải px.
View attachment 228274
Theo tôi hiểu thì đơn vị tính là tùy thuộc vào cách thiết lập trong cửa sổ Options (xem hình).

A_Rong.GIF
 
Theo tôi hiểu thì đơn vị tính là tùy thuộc vào cách thiết lập trong cửa sổ Options (xem hình).

View attachment 228281
Thầy be09 sẽ khiến khác bạn nhầm lẩn giữa đơn vị đo lường tiêu chuẩn và tỉ lệ điều chỉnh kích thước trang tính mặc định (không bao giờ đổi).

Cái Thầy chụp kia là đơn vị để tính trong việc căn chỉnh (Lề, khổ giấy, ...), bố trí trang (xem trước trang, bố cục trang, ...), nó hỗ trợ 2 mục là View (Xem) và Page Layout (Bố trí trang).
 
Web KT
Back
Top Bottom