tuananhya2
Thành viên mới

- Tham gia
- 18/8/12
- Bài viết
- 8
- Được thích
- 0
Co ai chỉ dùm cách tạo pass marco với
tks anh, đúng rồi, anh cho hỏi thêm, các con số (4), làm sao mình biết được vậy anh?
nếu tôi đổi thành
Set rng = Range("A:A").SpecialCells(3)
rng.Select
thì nó lại chọn các vùng có số liệu.
hay như tôi thấy mọi người hay dùng advance filter thì ghi là
AdvancedFilter 2, , [range], 1
nếu mình ghi record macro thì nó dài ngoằn, nên ko biết làm sao biết các con số đó
tks
tks anh, đúng rồi, anh cho hỏi thêm, các con số (4), làm sao mình biết được vậy anh?
nếu tôi đổi thành
Set rng = Range("A:A").SpecialCells(3)
rng.Select
thì nó lại chọn các vùng có số liệu.
hay như tôi thấy mọi người hay dùng advance filter thì ghi là
AdvancedFilter 2, , [range], 1
nếu mình ghi record macro thì nó dài ngoằn, nên ko biết làm sao biết các con số đó
tks
Cái dòng code này được khôngnhờ các anh chi cho xin đoạn code tìm dòng trống đâu tiên
vi du A1--->A6 có số liệu
A7-->A8 trống
A9---> lại tiếp tục có số liệu
tôi muốn tìm A7.
cám ơn mọi người
Được & Không đượcCái dòng code này được không
MsgBox [A1].End(4).Offset(1).Address
Dạ sdt đó là của em đó chứ. Bữa viết quên mất số 0908, định bụng sửa lại chữ ký mà dạo này lu bu quá nên chưa vào được trang chỉnh sửa thông tin cá nhân.Được & Không được
Tức là:
Có lúc "được" & có lúc "hổng được"
Tức là:
Nếu [A2] có dữ liệu thì..............được, còn ngược lại thì........."tèo"
Híc
Số dd của Hải phía bên dưới là số..........đểu hả ????
hỏi cách thoát một vòng lặp
chào ACE, mình có một vấn đề nhờ ACE giúp,
mình có 2 vòng lặp lồng vào nhau
for i=1 to 10
for j=1 to 10
'các lệnh ở đây
next j
next i
khi i chạy đườc 2 và j chạy tới 5 thì bị lổi, mình muốn thoát vòng lặp j không làm tiếp 6-10. mà nhảy ra lặp i lên 3
nếu dùng exit for thì nó thoát cả 2 vòng lặp.
nếu dùng on error resume next thì nó vẫn tiếp tục tăng j lên 6,7,8,9,10
nhờ ACE giúp dùm, hổng biết câu hỏi có quá ngu hong nữa
tks bà con
Sub GPE()
[A1:G8].Copy [H1:N8]
End Sub
Cho em hỏi 1 vấn đề về undo trong excle :
Giả sử e run code sau :
PHP:Sub GPE() [A1:G8].Copy [H1:N8] End Sub
Bây giờ tại worksheet em muốn ấn ctrl +Z để trở về trạng thái ban đầu ( trước lúc copy vào vùng [H1:N8]) , thì phải bổ sung vào code như thế nào
Private Const WM_CLOSE As Long = &H10
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
-----------------------------------------------------------------------------------------
Sub Main()
h = FindWindow("notepad", vbNullString) ' notepad
SendMessage h, WM_CLOSE, 0, 0
End Sub
Chẳng biết nữa, nhưng tôi chạy code trên thì có thông báo xuất hiện (hỏi Save...)Từ VBA trong excel em muốn tắt bỏ cửa sổ Notepad + 1 thông điệp lưu hay không lưu, tìm tòi trên diễn đàn em thử viết đoạn code như sau :
Mã:Private Const WM_CLOSE As Long = &H10 Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long ----------------------------------------------------------------------------------------- Sub Main() h = FindWindow("notepad", vbNullString) ' notepad SendMessage h, WM_CLOSE, 0, 0 End Sub
*Nhưng mà khi chạy code xong, cửa sổ notepad tự tắt luôn mà chẳng có hộp thoại thông báo nào <--------- ?![]()
Dùng hàm này thử xem:*vấn đề nữa là làm sao mình tìm được tên LpclassName của bất kỳ cửa sở hiện hành nào ? ví dụ như word là OPusAPP <<--- làm sao mình tìm được opusapp ???, giả sửa em có thêm ứng dụng autocad.exe đang chạy thì tên của cửa sổ là gì ?
--> mong các anh giải đáp vướng mắc của em !
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Function WinClassName(ByVal WinCap As String) As String
Dim WinWnd As Long, RetVal As Long, lpClassName As String
WinWnd = FindWindow(vbNullString, WinCap)
If WinWnd <> 0 Then
lpClassName = Space(256)
RetVal = GetClassName(WinWnd, lpClassName, 256)
WinClassName = Left$(lpClassName, RetVal)
End If
End Function
Sub Test()
MsgBox WinClassName("Untitled - Notepad")
MsgBox WinClassName("Document1 - Microsoft Word")
End Sub
Chẳng biết nữa, nhưng tôi chạy code trên thì có thông báo xuất hiện (hỏi Save...)
Dùng hàm này thử xem:
Mã:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Function WinClassName(ByVal WinCap As String) As String Dim WinWnd As Long, RetVal As Long, lpClassName As String WinWnd = FindWindow(vbNullString, WinCap) If WinWnd <> 0 Then lpClassName = Space(256) RetVal = GetClassName(WinWnd, lpClassName, 256) WinClassName = Left$(lpClassName, RetVal) End If End Function Sub Test() MsgBox WinClassName("Untitled - Notepad") MsgBox WinClassName("Document1 - Microsoft Word") End Sub
Hàm WinClassName thì tuyệt rồi! hix nhưng mà cái vụ sendmessega thì máy em nó cứ out luôn mà chẳng thông báo gì ( win 7 /32bits) <---- hổng lẽ win lỗi
Để em thử ngâm cứu thêm!
cảm ơn anh nhiểu !
Chuẩn rồi ! anh bắt đúng bệnh rồi ! Thanks anh thêm lần nữa![]()
Dạ,Topic "Dành cho các thành viên mới học.." thì câu hỏi của em là "dành cho các thành viên mới học windowAPI" ^^Mình nói thêm: Mấy câu bạn vừa hỏi mà lại cho vào topic DÀNH CHO CÁC THÀNH VIÊN MỚI HỌC... sao?
Nếu đúng thật lính mới mà hỏi mấy câu này chắc mình.. TRỐN luôn quá
For I = 1 to 10
If a = b then
For j=1 to 10
If c<d then …….
End if
Next
End if
Next
Thử viết như vầy xem nó có chạy đúng khôngMình muốn nếu thỏa mãn điều kiện c<d thì chương trình sẽ dừng lại và lấy giá trị i và j lúc đấy. Vậy chỗ "if c<d then" sẽ phải viết thế nào vậy?Mã:For I = 1 to 10 If a = b then For j=1 to 10 If c<d then ……. End if Next End if Next
For I = 1 to 10
If a = b then
For j=1 to 10
If c<d then
…….
Exit For
Exit For
End if
Next j
End if
Next I
Mình muốn nếu thỏa mãn điều kiện c<d thì chương trình sẽ dừng lại và lấy giá trị i và j lúc đấy. Vậy chỗ "if c<d then" sẽ phải viết thế nào vậy?
Thì cái chỗ .... ở dưới If.. then tác giả muốn nó lấy và ghi vào đâu thì tác giả tính, đến đó thì I và J đều không chạy nữa rối mà.Hổng chắc đâu 3T à,
Chương trình dừng lại thì dễ rồi (dùng lệnh End). Nhưng dừng xong rồi trị i, j lấy ra bỏ đâu thì tôi bí.