Tự động đóng khung (1 người xem)

Liên hệ QC

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

khongtu19bk

Thành viên hoạt động
Tham gia
5/12/09
Bài viết
147
Được thích
69
Rất mong được mọi người giúp đỡ.
 
Lần chỉnh sửa cuối:
Xin chỉ giúp mình hai vấn đề (mình mới chập chững tìm hiểu về VB trong excel, hjc):
-Code đóng khung trong VB là gì, ví dụ mình cần đóng khung nội dung ô B4 nếu nội dung ô B4 là không rỗng (tức là ô B4 có nội dung) thì ô B4 sẽ được đóng khung, giống như trong file này:
http://www.mediafire.com/?u88ng86bqfdqu1m

-Code trong VB copy nội dung ô B4 và dán nội dung đó vào ô A4 được viết như thế nào.

Rất mong được mọi người giúp đỡ.
1 - Bạn bật chức năng Record Macro lên ==> đóng khung chỗ nào muốn đóng ==> tắt chức năng Record Macro ==> bấm Alt + F11 xem Code đóng khung
2 - [B4].Copy(khoảng trắng)[A4]
 
re

Cảm ơn bạn.
Mình đã tìm hiểu được code đóng khung.

Mục đích của mình là làm như sau:
Nếu giá trị ở I không là rỗng (Ví dụ I5) thì sẽ đóng khung hàng 5 từ A->I.
Nhưng mình đang gặp rắc rối với câu lệnh for, ai có thể hướng dẫn cơ bản (kèm ví dụ) cho câu lệnh for được không, cái next có phải để tăng giá trị của i lên không?

Code này mình chạy chưa thành công, hjc, nó chỉ đóng khung dòng cuối cùng, các hàng khác không được đóng khung, có vấn đề với câu lệnh for rồi, hu hu
Mã:
Sub Xoa()
Dim iCuoi As Long, I As Long
    iCuoi = [b1000].End(xlUp).Row
        For I = iCuoi To 2 Step -1
            If Range("G" & I) = "OFF" Or Range("H" & I) = "OFF" Then
                If Range("i" & I - 1) = Range("i" & I + 1) Then
                    Rows(I).Delete
                Else
                    Range("A" & I).Resize(, 9).ClearContents
                End If
            End If
        Next
        
 For I = iCuoi To 2 Step -1 // code đóng khung
              
If (Range("i" & I) <> " ") Then

Range("A" & I).Resize(, 9).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    
    Else
    
    End If
  Next
  
    
End Sub
 
Lần chỉnh sửa cuối:
Cảm ơn bạn.
Mình đã tìm hiểu được code đóng khung.

Mục đích của mình là làm như sau:
Nếu giá trị ở I không là rỗng (Ví dụ I5) thì sẽ đóng khung hàng 5 từ A->I.
Nhưng mình đang gặp rắc rối với câu lệnh for, ai có thể hướng dẫn cơ bản (kèm ví dụ) cho câu lệnh for được không, cái next có phải để tăng giá trị của i lên không?

Code này mình chạy chưa thành công, hjc, nó chỉ đóng khung dòng cuối cùng, các hàng khác không được đóng khung, có vấn đề với câu lệnh for rồi, hu hu
Tặng Bạn File này, hình như nó cũng của Bạn đấy.
Nhập dữ liệu ở sheet1, mở sheets 2 để xem kết quả.
 

File đính kèm

Đối với đóng khung (Selection hoặc 1 Range xác định nào đó, thay vì lập đi lập lại câu lệnh
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Tại sao ta không dùng vòng lặp? Và trong vùng dữ liệu, tôi thích đường kẻ ngang bên trong (inside Horizontal border) là đường mảnh. Tôi thí dụ đoạn code này, đang ứng dụng cho selection:

PHP:
For i = 7 To 12
    With Selection.Borders(i)
        .LineStyle = 1
        If i = 12 Then .Weight = 1
    End With
Next

Tôi sẽ chọn dòng tiêu đề, chạy 1 lần, chọn vùng data, chạy 1 lần nữa, và nếu có dòng cộng, chọn dòng cộng và chạy lần cuối.
 
Code xoá OFF và đóng khung nằm trong sự kiện Worksheet_Activate của sheet 2. Macro 3 nằm trong Module là record macro để copy code qua cho lẹ, khỏi gõ.
 
Web KT

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

Back
Top Bottom