Code co dãn dòng chiều cao tối thiểu (1 người xem)

  • Thread starter Thread starter vova2209
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

vova2209

Thành viên tích cực
Tham gia
5/4/17
Bài viết
835
Được thích
112
Giới tính
Nam
Nghề nghiệp
Đường bộ
Đoạn code ở GPE: khi dãn dòng sang 2 hoặc 3 dòng thì toàn bị thiếu mất chiều cao của chữ, em thấy mạc định code đang là 16.5, nếu 3 dòng thì bằng 49.5
1. giờ em muốn chiều cao tối thiểu của nó là 18 thì phải sửa như nào. Nhờ anh chị giúp đỡ em a. Em xin cảm ơn!
Mã:
'FIX ROW CO DAN DÒNG
Sub MergeCellFit(ByVal MergeCells As Range)
    Dim Diff As Single
    Dim FirstCell As Range, MergeCellArea As Range
    Dim Col As Long, ColCount As Long, RowCount As Long
    Dim FirstCellWidth As Double, FirstCellHeight As Double, MergeCellWidth As Double
  
    If MergeCells.Count = 1 Then
        Set MergeCellArea = MergeCells.MergeArea
    Else
        Set MergeCellArea = MergeCells
    End If

    With MergeCellArea
        ColCount = .Columns.Count
        RowCount = .Rows.Count
        .WrapText = True
        If RowCount = 1 And ColCount = 1 Then
            .EntireRow.AutoFit
            GoTo ExitSub
        End If
        Set FirstCell = .Cells(1, 1)
        FirstCellWidth = FirstCell.ColumnWidth
        Diff = 0.75
        For Col = 1 To ColCount
            MergeCellWidth = MergeCellWidth + .Cells(1, Col).ColumnWidth + Diff
        Next
        .MergeCells = False
        FirstCell.ColumnWidth = MergeCellWidth - Diff
        .EntireRow.AutoFit
        FirstCellHeight = FirstCell.RowHeight
        .MergeCells = True
        FirstCell.ColumnWidth = FirstCellWidth
        FirstCellHeight = FirstCellHeight / RowCount
        .RowHeight = FirstCellHeight
    End With
ExitSub:
End Sub
+ Em xin nhờ thêm chút nữa
2. Tại những vị trí i5, i6, i7 nếu thay 14 = E14, 82=E82, 111=E111 thì phai khai báo biến như nào và đoạn code dưới phải sửa như nào ạ
Mã:
Sub CoDanRowBB()
    Dim R1, R2, R3 As Long
        R1 = Range("AI5")
        R2 = Range("AI6")
        R3 = Range("AI7")
   
        MergeCellFit Sheets("BBan").Range("E" & R1) 'NT Noi Bo
        Range("E" & R2).RowHeight = Range("E" & R1).RowHeight 'Phieu Yeu Cau
        Range("E" & R3).RowHeight = Range("E" & R1).RowHeight 'NT CVXD
End Sub

Untitled.png
 
Lần chỉnh sửa cuối:
Đoạn code ở GPE: khi dãn dòng sang 2 hoặc 3 dòng thì toàn bị thiếu mất chiều cao của chữ, em thấy mạc định code đang là 16.5, nếu 3 dòng thì bằng 49.5
1. giờ em muốn chiều cao tối thiểu của nó là 18 thì phải sửa như nào. Nhờ anh chị giúp đỡ em a. Em xin cảm ơn!
Mã:
'FIX ROW CO DAN DÒNG
Sub MergeCellFit(ByVal MergeCells As Range)
    Dim Diff As Single
    Dim FirstCell As Range, MergeCellArea As Range
    Dim Col As Long, ColCount As Long, RowCount As Long
    Dim FirstCellWidth As Double, FirstCellHeight As Double, MergeCellWidth As Double
 
    If MergeCells.Count = 1 Then
        Set MergeCellArea = MergeCells.MergeArea
    Else
        Set MergeCellArea = MergeCells
    End If

    With MergeCellArea
        ColCount = .Columns.Count
        RowCount = .Rows.Count
        .WrapText = True
        If RowCount = 1 And ColCount = 1 Then
            .EntireRow.AutoFit
            GoTo ExitSub
        End If
        Set FirstCell = .Cells(1, 1)
        FirstCellWidth = FirstCell.ColumnWidth
        Diff = 0.75
        For Col = 1 To ColCount
            MergeCellWidth = MergeCellWidth + .Cells(1, Col).ColumnWidth + Diff
        Next
        .MergeCells = False
        FirstCell.ColumnWidth = MergeCellWidth - Diff
        .EntireRow.AutoFit
        FirstCellHeight = FirstCell.RowHeight
        .MergeCells = True
        FirstCell.ColumnWidth = FirstCellWidth
        FirstCellHeight = FirstCellHeight / RowCount
        .RowHeight = FirstCellHeight
    End With
ExitSub:
End Sub
+ Em xin nhờ thêm chút nữa
2. Những vị trí ô viết ở code E14, E82, E111 mình muốn lấy thông ghi ở Bảng excell "AH1=E14; AH2=E82,AH3=E111" chứ không phải trong code thì làm thế nào (ví dụ xóa dòng đi không phải vào sửa code )
Mã:
Sub CoDanRowBB()
        MergeCellFit Sheets("BBan").Range("E14") 'NT Noi Bo
        Range("E82").RowHeight = Range("E14").RowHeight 'Phieu Yeu Cau
        Range("E111").RowHeight = Range("E14").RowHeight 'NT CVXD
End Sub
Gộp ô (Merge and Center) mà chơi AutoFit nó không theo ý muốn đâu, muốn nó co giản chỗ nào thì đưa File lên tôi xem thử.
 
Upvote 0
Gộp ô (Merge and Center) mà chơi AutoFit nó không theo ý muốn đâu, muốn nó co giản chỗ nào thì đưa File lên tôi xem thử.
Anh xem hộ em với ạ! chiều cao dòng đang bị mạc định là 16.5 khi sang 2 dòng trở đi là bị mất chân chữ g. Em nghĩ làm thế nào cho chiều cao tính toán cho lên 20 là sẽ được
 

File đính kèm

Upvote 0
Upvote 0
Những cái Biên bản hay quyết định tại sao bạn không đánh tạo mẫu trong word, khi nào cần thì bạn chỉ chạy Code lấy dữ liệu từ Excel qua Word cho nó tiện, chứ canh văn bản trong Excel mệt lắm
 
Upvote 0
Những cái Biên bản hay quyết định tại sao bạn không đánh tạo mẫu trong word, khi nào cần thì bạn chỉ chạy Code lấy dữ liệu từ Excel qua Word cho nó tiện, chứ canh văn bản trong Excel mệt lắm
Chắc là còn nhiều cái khác nữa Chị ạ. Nhà họ thích file làm tất tần tật cơ :p:p:p. Vậy nó mới hoành tráng chứ ;)
 
Upvote 0
Chắc là còn nhiều cái khác nữa Chị ạ. Nhà họ thích file làm tất tần tật cơ :p:p:p. Vậy nó mới hoành tráng chứ ;)
Nếu trộn thư thì đơn giản, in cũng nhanh. Nhưng với đặc thù công việc phải xắp xếp khoảng 5 biên bản khác nhau bao gồm cả bảng tính.. Nếu in bảng tính riêng và in biên bản trộn thư thì phải xếp tay. 10 biên bản thì không sao, lên tới khoảng 1000>5000 Biên bản thì xếp chắc mất 1 tuần nguyên xếp ghép lại với nhau. Ý nghĩa là vậy chị à ^^!
 
Upvote 0
Những cái Biên bản hay quyết định tại sao bạn không đánh tạo mẫu trong word, khi nào cần thì bạn chỉ chạy Code lấy dữ liệu từ Excel qua Word cho nó tiện, chứ canh văn bản trong Excel mệt lắm
Nếu trộn thư thì đơn giản, in cũng nhanh. Nhưng với đặc thù công việc phải xắp xếp khoảng 5 biên bản khác nhau bao gồm cả bảng tính.. Nếu in bảng tính riêng và in biên bản trộn thư thì phải xếp tay. 10 biên bản thì không sao, lên tới khoảng 1000>5000 Biên bản thì xếp chắc mất 1 tuần nguyên xếp ghép lại với nhau. Ý nghĩa là vậy chị à ^^!
 
Upvote 0
Những cái Biên bản hay quyết định tại sao bạn không đánh tạo mẫu trong word, khi nào cần thì bạn chỉ chạy Code lấy dữ liệu từ Excel qua Word cho nó tiện, chứ canh văn bản trong Excel mệt lắm
Nếu bạn có 10 loại biên bản khác nhau không lẽ phải mở 10 File Word, nếu muốn in từng cái thì phải hiển thị nó.
Trong Excel, thì có thể làm được điều này với 1 cái click chuột.
 
Upvote 0
Nếu bạn có 10 loại biên bản khác nhau không lẽ phải mở 10 File Word, nếu muốn in từng cái thì phải hiển thị nó.
Trong Excel, thì có thể làm được điều này với 1 cái click chuột.
Ôi! cái này mới em chưa biết, VD 1 file có 10 biên bản từ 1 đến 10 và có 10 bảng tính trong excell
- khi in Biên bản 1 xong đến bảng tính thứ 1
- In tiếp Biên bản số 2 tiếp đến bảng tính thứ 2 ở excell
- Biên bản 3...... >>
Như thế có được không ạ!
a có file nào ví dụ như anh nói em xem tham khảo, em chưa hình dung ra được cách của a ạ
 
Upvote 0
Quan trọng là tạo mẫu dồn vô 1 file work roi dung vba đưa dữ diệu vào Work thôi, không phải dùng trộn thư . Mà tùy từng công việc mỗi người mình chỉ góp ý vậy thôi, còn theo mình thì mình làm cách đó hihihi
 
Upvote 0
Ôi! cái này mới em chưa biết, VD 1 file có 10 biên bản từ 1 đến 10 và có 10 bảng tính trong excell
- khi in Biên bản 1 xong đến bảng tính thứ 1
- In tiếp Biên bản số 2 tiếp đến bảng tính thứ 2 ở excell
- Biên bản 3...... >>
Như thế có được không ạ!
a có file nào ví dụ như anh nói em xem tham khảo, em chưa hình dung ra được cách của a ạ
Hum nao Anh cho em chiêm ngưỡng cái công trình của anh cái. Anh toàn trích lẻ ra không bít được cái gì mà học nữa ;););)
 
Upvote 0
Hum nao Anh cho em chiêm ngưỡng cái công trình của anh cái. Anh toàn trích lẻ ra không bít được cái gì mà học nữa ;););)
Vâng chị! toàn code GPE giúp đỡ mà chị.. em làm về mảng giao thông.. ý tưởng và ứng dụng cũng chỉ phục vụ giao thông thôi.. chẳng giám post! a chị cười chết ^^! chị có nhã hứng em gửi cho tham quan tư vấn em ạ
 
Upvote 0
Ôi! cái này mới em chưa biết, VD 1 file có 10 biên bản từ 1 đến 10 và có 10 bảng tính trong excell
- khi in Biên bản 1 xong đến bảng tính thứ 1
- In tiếp Biên bản số 2 tiếp đến bảng tính thứ 2 ở excell
- Biên bản 3...... >>
Như thế có được không ạ!
a có file nào ví dụ như anh nói em xem tham khảo, em chưa hình dung ra được cách của a ạ
Cách này anh chưa làm, nhưng cũng gợi ý để em làm thử (chỉ với vài dòng code thôi):

1/ Dùng 1 sheet mẫu sử dụng Advanced Filter lọc dòng cần lập biên bản (hay cái gì đó), sau đó Transpose hàng ngang thành hàng dọc (vị trí Transpose buộc phải cố định) mục đích Transpose để thuận tiện trong việc tạo Link vào các biên bản.
2/ Dựa vào sheet mẫu, tạo link cho các biên bản với trị tuyệt đối cho từng Cell tương ứng.

Ở sheet mẫu chỉ cần chọn 1 số thứ tự của sheet VoVa và nhấn nút (lọc) thì tất cả thông tin cần sẽ hiện đầy đủ trong tất cả các loại biên bản theo ý muốn.
 
Lần chỉnh sửa cuối:
Upvote 0
Cách làm như nêu ở bài 18: Làm thử 1 cái biên bản đầu tiên để bạn tham khảo.
(Trong File tôi xóa bỏ tất cả các nút , code và hàm của bạn).

1/ Gõ 1 số thứ tự vào A2 của sheet lọc và nhấn nút để xem biên bản.
2/ những chỗ tô màu xanh trong sheet lọc là những Cell Link vào biên bản, những cái biên bản khác là làm tương tự.
3/ Sheet theo dõi cấu trúc tiêu đề chưa đầy đủ nội dung của biên bản nên tôi chỉ làm có 1 phần.
 

File đính kèm

Upvote 0
Cách làm như nêu ở bài 18: Làm thử 1 cái biên bản đầu tiên để bạn tham khảo.
(Trong File tôi xóa bỏ tất cả các nút , code và hàm của bạn).

1/ Gõ 1 số thứ tự vào A2 của sheet lọc và nhấn nút để xem biên bản.
2/ những chỗ tô màu xanh trong sheet lọc là những Cell Link vào biên bản, những cái biên bản khác là làm tương tự.
3/ Sheet theo dõi cấu trúc tiêu đề chưa đầy đủ nội dung của biên bản nên tôi chỉ làm có 1 phần.
Cảm ơn anh! cách này làm giảm số hàm xuống đáng kể, file sẽ nhẹ đi nhiều. Để em ứng dụng! có gì không hiểu nhờ a giúp đỡ
 
Upvote 0
Web KT

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

Back
Top Bottom