Tự động cắt đoạn khi dài quá độ rộng của ô (1 người xem)

Liên hệ QC

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

nncb2008

Thành viên chính thức
Tham gia
14/2/08
Bài viết
88
Được thích
3
Chào các anh/chị trên diễn đàn.
Em có vấn đề mong được mọi người giúp đỡ.
Có 2 ô B4 và A5 để đưa dữ liệu vào (dữ liệu là đoạn văn bản), độ rộng cột A và B cố định.
- Nếu đoạn văn bản ngắn vừa độ rộng của cột B thì giữ nguyên ở ô B4.
- Nếu dài quá thì cắt đến vừa đủ độ rộng cột B để ở ô B4 và đoạn còn lại chuyển xuống ô A5
Cụ thể em trình bày trong file đính kèm.
 

File đính kèm

Không hiểu ý bạn lắm, nhưng bạn thử định dạng Wrap text xem có được không
(Ctr+1, chọn Aligment, chọn Wrap text)
 
PHP:
Private Sub CommandButton1_Click()
    Dien [C1]
End Sub

PHP:
Private Sub CommandButton2_Click()
    Dien [C2]
End Sub

PHP:
Sub Dien(Rng As Range)
Union([B4], [A5:A6]).ClearContents
Dim Separate1 As Long, Separate2 As Long
If Len(Rng) > 46 Then
    Separate1 = InStr(45, Rng.Value, " ") - 1
    [B4] = Left(Rng, Separate1)
    If Len(Rng) < 146 Then
        [A5] = Mid(Rng, Separate1 + 2, Len(Rng))
    Else
        Separate2 = InStr(145, Rng.Value, " ") - 1
        [A5] = Mid(Rng, Separate1 + 2, Separate2 - Separate1 - 1)
        [A6] = Mid(Rng, Separate2 + 2, Len(Rng))
    End If
Else
    [B4] = Rng.Value
End If
End Sub
 

File đính kèm

Cảm ơn ptm0412.
Với độ dài cố định (46) thì khi trong đoạn văn bản có nhiều kí tự "hẹp" (ví dụ i) thì sẽ không ổn lắm.
 
Cảm ơn ptm0412.
Với độ dài cố định (46) thì khi trong đoạn văn bản có nhiều kí tự "hẹp" (ví dụ i) thì sẽ không ổn lắm.

Độ rộng cột của bạn tương đương với chuỗi độ dài 45, 46 ký tự. Giả sử 10 từ đầu là 42 ký tự, từ kế tiếp 6 ký tự thì cũng bắt buộc xuống dòng, chứ chả lẽ nửa trên nửa dưới?
Và khi 42 ký tự cũng phải xuống dòng, thì cũng giống như văn bản nhiều ký tự ốm.

Tôi thấy đó là cách cắt chuỗi duy nhất phù hợp. Vấn đề còn lại là bạn định dạng Justify cho các cell đó.
 
Web KT

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

Back
Top Bottom