Theo gợi ý của bạn mình đã code cho nó điền luôn khi ấn insert tuy nhiên nó hiện lỗi N/A mà chưa hiểu vì sao. minh kiểm tra thấy giá trị tìm kiếm và giá trị ở bảng tra cứu là cùng kiểu số rồi. hic. Bạn giúp mình xem lại code với
Xin chào mọi người !
tôi có câu hỏi cần được mọi người giúp đỡ
Khi tôi thực hiện lệnh gọi form từ macro
sub Goi_form()
userform1.show
end sub
form đã hiện lên để tôi nhập thông tin vào form nhưng không cho thực hiện thao tác khác với bảng tính như nhập liệu vào Cell như bình thường.
nhưng câu hỏi đặt ra là, làm thế nào để tôi vẫn có thể sử dụng bảng tính Excel (như nhập liệu, chỉnh sửa v..vv.) trong khi Userform đang được Show trên màn hình?
Xin chào mọi người !
tôi có câu hỏi cần được mọi người giúp đỡ
Khi tôi thực hiện lệnh gọi form từ macro
sub Goi_form()
userform1.show
end sub
form đã hiện lên để tôi nhập thông tin vào form nhưng không cho thực hiện thao tác khác với bảng tính như nhập liệu vào Cell như bình thường.
nhưng câu hỏi đặt ra là, làm thế nào để tôi vẫn có thể sử dụng bảng tính Excel (như nhập liệu, chỉnh sửa v..vv.) trong khi Userform đang được Show trên màn hình?
Xin chào mọi người !
tôi có câu hỏi cần được mọi người giúp đỡ
Khi tôi thực hiện lệnh gọi form từ macro
sub Goi_form()
userform1.show
end sub
form đã hiện lên để tôi nhập thông tin vào form nhưng không cho thực hiện thao tác khác với bảng tính như nhập liệu vào Cell như bình thường.
nhưng câu hỏi đặt ra là, làm thế nào để tôi vẫn có thể sử dụng bảng tính Excel (như nhập liệu, chỉnh sửa v..vv.) trong khi Userform đang được Show trên màn hình?
tôi đã làm như vậy
sau khi form hiện lên, tôi nhập dữ liệu vào bảng tính rồi quay lại form nhập tiếp dữ liệu vào form thì bị đơ máy rất lâu.
tôi gửi kèm file đính kèm. nhờ mọi người xem giúp !
tôi đã làm như vậy
sau khi form hiện lên, tôi nhập dữ liệu vào bảng tính rồi quay lại form nhập tiếp dữ liệu vào form thì bị đơ máy rất lâu.
tôi gửi kèm file đính kèm. nhờ mọi người xem giúp !
tôi đã làm như vậy
sau khi form hiện lên, tôi nhập dữ liệu vào bảng tính rồi quay lại form nhập tiếp dữ liệu vào form thì bị đơ máy rất lâu.
tôi gửi kèm file đính kèm. nhờ mọi người xem giúp !
Tôi đã test file này và bị lỗi như bạn vanmanhvcu đề cập (máy cài Officw 2013).
Tìm trên mạng thì thấy khuyên là hạn chế dùng cái RefEdit control này, dễ gây crash Excel.
Một trong các cách để tránh "đơ" là Userform chứa control này phải ở chế độ Modal: True. Nếu không sẽ gặp các lỗi lung tung trong Excel.
Tóm lại nên dùng giải pháp thay thế cho control này là tốt nhất.
Thanm khảo:
Tôi đã test file này và bị lỗi như bạn vanmanhvcu đề cập (máy cài Officw 2013).
Tìm trên mạng thì thấy khuyên là hạn chế dùng cái RefEdit control này, dễ gây crash Excel.
Một trong các cách để tránh "đơ" là Userform chứa control này phải ở chế độ Modal: True. Nếu không sẽ gặp các lỗi lung tung trong Excel.
Tóm lại nên dùng giải pháp thay thế cho control này là tốt nhất.
Thanm khảo:
Cám ơn @ongke0711
vậy có thể dùng control nào hay cách nào để cho người dùng userform nhập địa chỉ vào được không? (thay thế cái Refedit trên form kia của tôi)
Chào tất cả mọi người !
mình có làm Add-in để show Icon trên Userform
nhưng không hiểu vì sao chỉ hoạt động trên Excel 2007 như dưới: (hình 1)
nhưng khi chạy trên Office 2010 64 bít thì không ra : (hình 2)
và cả khi chạy trên Office 2016 32 bít cũng không ra: (hình 3)
File Addin mình có đính kèm
mọi người xem và xử lý giúp !
Thì ExtractIcon nó failed, tìm không Icon đó trong Excel chứ sao bác. Bác dùng Resource Hacker (google) xem thử cái Icon bác cần trong Excel mới có ID là bao nhiêu ?
Góp ý chút, bác declare API tá lã chổ hết, trùng nhau lung tung. Bác chịu khó gôm hết về 1 module đi cho dễ code, dễ kiểm soát. Vd modAPI chẵng hạn.
Trên khai báo API, cái gì có H ở trước thì khi khai báo trong VBA7, bác chịu khó đổi thành LongPtr. Khai báo còn sai nhiều.
H là handle đó bác, ví dụ HWND, HINSTANCE, HDC... Nó là các số Long trên Win/Office 32 bit, LongLong trên Win/Office 64 bit. Với VBA7, VBA sẽ tự động thông dịch LongPtr thành ra Long hay LongLong theo Office32 hay 64.
Thì ExtractIcon nó failed, tìm không Icon đó trong Excel chứ sao bác. Bác dùng Resource Hacker (google) xem thử cái Icon bác cần trong Excel mới có ID là bao nhiêu ?
Góp ý chút, bác declare API tá lã chổ hết, trùng nhau lung tung. Bác chịu khó gôm hết về 1 module đi cho dễ code, dễ kiểm soát. Vd modAPI chẵng hạn.
Trên khai báo API, cái gì có H ở trước thì khi khai báo trong VBA7, bác chịu khó đổi thành LongPtr. Khai báo còn sai nhiều.
H là handle đó bác, ví dụ HWND, HINSTANCE, HDC... Nó là các số Long trên Win/Office 32 bit, LongLong trên Win/Office 64 bit. Với VBA7, VBA sẽ tự động thông dịch LongPtr thành ra Long hay LongLong theo Office32 hay 64.
Bác lên đây download tool này về, rồi mở file Excel.exe mà bác cần xem ra, duyệt tới mục Icon, xem ID nào cần lấy thì chỉnh cái ID đó lại trong code của bác, chổ call hàm ExtractIcon đấy.
Bác lên đây download tool này về, rồi mở file Excel.exe mà bác cần xem ra, duyệt tới mục Icon, xem ID nào cần lấy thì chỉnh cái ID đó lại trong code của bác, chổ call hàm ExtractIcon đấy.
2. Khai báo không chính xác. Vd.
Không thể là
#If VBA7 Then
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
4. Về code thì sai không phải do ExtractIcon. Parameter cuối cùng không phải là ID (identifier) mà là index - chỉ số thôi. 0 có nghĩa là icon đầu tiên có trong EXE, DLL. Excel.exe rõ ràng có ít nhất 1 icon.
Sai do cách dùng hàm SendMessage. Nếu ở trên là
#If VBA7 Then
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
Ngoài ra nên khai báo nhất quán. Hoặc cùng ANY hoặc cùng không ANY. Tức hoặc (lParam truyền bởi reference)
#If VBA7 Then
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
#Else
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, lParam As Any) As Long
#End If
#If VBA7 Then
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, Byval lParam As LongPtr) As LongPtr
#Else
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, Byval lParam As Long) As Long
#End If
Chào tất cả mọi người !
mình có làm Add-in để show Icon trên Userform
nhưng không hiểu vì sao chỉ hoạt động trên Excel 2007 như dưới: (hình 1) View attachment 220547
nhưng khi chạy trên Office 2010 64 bít thì không ra : (hình 2) View attachment 220548
và cả khi chạy trên Office 2016 32 bít cũng không ra: (hình 3) View attachment 220549
File Addin mình có đính kèm
mọi người xem và xử lý giúp !