Hỏi về Msg box, và unhide Code

Liên hệ QC

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
459
Được thích
395
Nghề nghiệp
Economic
Chào các bác
File VS của em có 3 sheet (1,2,3)
-Ý định của em là cứ mở file (VS) này thì sheet 3 hiện luôn, dù trước khi đóng file này ta có thể đang ở sheet 1
-Có một Msgbox hiện ra thông báo ".............." và ấn OK => thoát
-Sheet 2 dữ liệu hiện thời em chỉ có 200 dòng
+ Ý của em là ẩn hết số dòng trong sheet 2 đi (từ dòng 202 đi)
+ Còn lai vẫn có row trắng là 201
+ khi em nhập dữ liệu vào dòng 201 thì dòng 202 sẽ đựoc Unhide (dòng trắng)
+ và tiếp tục như vậy

Xin đươc chỉ giáo từ phía anh chị
 
Lần chỉnh sửa cuối:
feelingyes đã viết:
Chào các bác
File VS của em có 3 sheet (1,2,3)
-Ý định của em là cứ mở file (VS) này thì sheet 3 hiện luôn, dù trước khi đóng file này ta có thể đang ở sheet 1
-Có một Msgbox hiện ra thông báo ".............." và ấn OK => thoát

PHP:
Private Sub Workbook_Open()
Sheets(3).Select
MsgBox ("Cick OK button to Close")
Sheets(2).Select
End Sub

feelingyes đã viết:
-Sheet 2 dữ liệu hiện thời em chỉ có 200 dòng
+ Ý của em là ẩn hết số dòng trong sheet 2 đi (từ dòng 202 đi)
+ Còn lai vẫn có row trắng là 201
+ khi em nhập dữ liệu vào dòng 201 thì dòng 202 sẽ đựoc Unhide (dòng trắng)
+ và tiếp tục như vậy

Bạn xem trong đường Link này
 
Upvote 0
dat2007 đã viết:
PHP:
Private Sub Workbook_Open()
Sheets(3).Select
MsgBox ("Cick OK button to Close")
Sheets(2).Select
End Sub

Bác ơi sao em copy vào, khi open file không thấy gì vậy?
 
Upvote 0
Minhlev đã viết:
PHP:
Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column = 1 Then
If Cells(Target.Row, 1).Value <> "" Then
Cells(Target.Row + 1, 1).EntireRow.Hidden = False
Else
If Cells(Target.Row + 1, 1).Value <> "" Then
Cells(Target.Row + 1, 1).EntireRow.Hidden = False
Else
Cells(Target.Row + 1, 1).EntireRow.Hidden = True
End If
Dim i As Integer
For i = 1 To 10
If Cells(Target.Row + i + 1, 1).Value = "" Then _
Cells(Target.Row + i + 1, 1).EntireRow.Hidden = True
Next
End If
End If
Application.ScreenUpdating = True
End Sub


Bạn xem trong đường Link này
Trong đoạn code trên, em rất mong anh giảng giải cho em một chút những điều em không hiểu sau
1.
Minhlev đã viết:
Application.ScreenUpdating = False
Câu lệnh trên có nghĩa là gì ?
2.
Minhlev đã viết:
If Target.Column = 1 Then
If Cells(Target.Row, 1).Value <> "" Then
Cells(Target.Row + 1, 1).EntireRow.Hidden = False
Target.column nên hiểu như thế nào ạ?
Cell(Target.row, 1)---------------->em ko hiểu?
Em xin đươc cảm ơn
 
Lần chỉnh sửa cuối:
Upvote 0
Mã:
[I]Application.ScreenUpdating = False[/I]
Có nghĩa là tắt chức năng cập nhật màn hình đi.
Mã:
[I]Target.Column[/I]
Có nghĩa là cột của vùng đích (Target).
Mã:
[I]Cell(Target.row, 1)[/I]
Có nghĩa là ô được xác định bởi dòng của vùng đích (Target) với cột 1(cột A).
 
Upvote 0
Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column = 1 Then
If Cells(Target.Row, 1).Value <> "" Then
Cells
(Target.Row + 1, 1).EntireRow.Hidden = False
Else
If
Cells(Target.Row + 1, 1).Value <> "" Then
Cells
(Target.Row + 1, 1).EntireRow.Hidden = False
Else
Cells(Target.Row + 1, 1).EntireRow.Hidden = True
End
If
Dim i As Integer
For i = 1 To 10
If Cells(Target.Row + i + 1, 1).Value = "" Then _
Cells
(Target.Row + i + 1, 1).EntireRow.Hidden = True
Next
End
If
End If
Application.ScreenUpdating = True
End Sub

Anh ơi trong đoạn code trên em không phân biết đâu là end if của If nào
-Anh có thể dạy em cách phân biệt không (vi dụ trong hàm if (mở bảo nhiêu dấu "(", thì phải đóng bao nhiêu dấu ")"
 
Upvote 0
Nói thêm 1 chút...
Trong mấy code dùng sự kiện change, người ta hay dùng đến Target... Nó có nghĩa là cái cell mà bạn vừa gõ vào ấy
Ví dụ... bạn vừa làm gì đó trong cell F5, vậy Target chính là F5... đến lúc khác bạn thay đổi gì đó trên cell H7, vậy Target khi này chính là H7...
Application.ScreenUpdating
Món này dễ lắm... bạn có thể thí nghiệm bằng cách bỏ code ấy xem thế nào... Thông thường sẽ thấy khi code chạy, màn hình của bạn hơi hơi bị chớp chớp... Vì thế mà cho thêm nó vào...mục địch cho khỏi.. giật mình thôi... hi.. hi..
ANH TUẤN
 
Upvote 0
Bạn xem nhé, cứ các dòng If .... End If ngay hàng với nhau là của nhau.--=0 --=0 --=0
PHP:
Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column = 1 Then
    If Cells(Target.Row, 1).Value <> "" Then
        Cells(Target.Row + 1, 1).EntireRow.Hidden = False
    Else
        If Cells(Target.Row + 1, 1).Value <> "" Then
            Cells(Target.Row + 1, 1).EntireRow.Hidden = False
        Else
            Cells(Target.Row + 1, 1).EntireRow.Hidden = True
        End If
        Dim i As Integer
        For i = 1 To 10
            If Cells(Target.Row + i + 1, 1).Value = "" Then _
                Cells(Target.Row + i + 1, 1).EntireRow.Hidden = True
        Next
    End If
End If
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Private Sub Workbook_Open()
Sheets(3).Select
MsgBox ("Cick OK button to Close")
Sheets(2).Select
End Sub

feelingyes đã viết:
Bác ơi sao em copy vào, khi open file không thấy gì vậy?

Bạn Copy đoạn Code trên vào ThisWorkbook (trong VBAProject).

Nói chung bạn nên đọc kĩ Sách VBA dành cho người mới bắt đầu của bác Phantuhuong thì sẽ hiểu về VBA một cách hệ thống hơn.
 
Upvote 0
feelingyes đã viết:
Xin lỗi vì em lại hỏi một chút

tại sao vòng lặp For next lại là
For i = 1 To 10
mà không phải là To 100,...120.
Cám ơn sự tận tình chỉ dạy
Cái này dễ lắm... cách tốt nhất đễ hiểu nó mà ko cần ai giãi thích lòng vòng là bạn hãy thay i= 1 to 10 thành số khác.. chẳng hạn thành i = 1 to 15... sau đó chạy code đễ xem có gì khác nhau giữa số 10 và số 15... Từ đó bạn sẽ hiểu dc vấn đề còn hơn trăm ngàn lời giãi thích
ANH TUẤN
 
Upvote 0
Web KT

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

Back
Top Bottom