Hỏi về lỗi SendKeys vào khung chọn Range của Dialog Box. (1 người xem)

  • Thread starter Thread starter ptm0412
  • Ngày gửi Ngày gửi
Liên hệ QC

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

ptm0412

Bad Excel Member
Thành viên BQT
Administrator
Tham gia
4/11/07
Bài viết
14,676
Được thích
37,384
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Có topic hỏi về tự động điền parameter cho MS Query ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?45888-Xin-code-t%E1%BB%B1-%C4%91%E1%BB%99ng-nh%E1%BA%ADp-%C4%91%E1%BB%8Ba-ch%E1%BB%89-%C3%B4-c%E1%BB%A7a-Parameter-Value-trong-Query-Excel&p=295886#post295886

Ý tác giả muốn khi chạy code hiện ra hộp thoại này:

Para01.jpg

Sẽ tự động chọn ô C2 sheet hiện thời. Sau đó tự động đánh dấu vào 2 checkbox và nhấn OK.
Mình bèn dùng SendKeys như sau:

PHP:
1       Application.SendKeys "=Sheet1!$C$2"
        Application.SendKeys "{TAB}"
        Application.SendKeys " "
        Application.SendKeys "{TAB}"
        Application.SendKeys "chr(32)"
        Application.SendKeys "{Enter}"
Nhưng dòng lệnh 1 luôn luôn hiện ra 1 cách không mong muốn như sau: =Sheet1!!$$CC$2
Hai dấu !, 2 ký tự $ và 2 chữ C

Nếu bỏ qua dòng 1, Các dòng lệnh khác đều chạy đúng ý đồ (kể cả " " hay Chr(32) đều chạy tốt)

Para02.jpg

Câu hỏi là:
1. Vì sao các ký hiệu !, $ và cả chữ C đều bị double lên?

2. Khắc phục như thế nào?

Xin cám ơn.

TB:
Chỉ SendKeys "C2" thì cũng được, nhưng không đúng nguyên tắc.
Làm tà đạo thì cũng được rồi, nhưng không hiểu thì tức lắm.
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Upvote 0
File này: Query.rar
Giải nén vào C:\

Hì, có người trả lời rồi.

Nếu code chạy đúng, thì chỉ cần thay giá trị C2 là Query tự refresh.

À quên, trước khi chạy phải xoá cái query đi đã.
Em test bình thường sư phụ ơi
Em đăt Sendkeys ngay bên dưới dòng này:
PHP:
"SELECT Name.Name, Name.`Nam sinh`  FROM `C:\Query\Book1`.Name Name  WHERE (Name.Name=?)" _
        )


untitled.JPG
 
Upvote 0
Em test bình thường sư phụ ơi
Em đăt Sendkeys ngay bên dưới dòng này:
PHP:
"SELECT Name.Name, Name.`Nam sinh`  FROM `C:\Query\Book1`.Name Name  WHERE (Name.Name=?)" _
        )
Đặt đó đúng rồi. Mình đặt đó, chạy thì ra cái hình quỷ quái trên kia. Lạ thật. Hay là do cài song song 2003 & 2007?

Thế là chơi tà đạo vầy:

PHP:
        Sheet1.[C1].Select
1       Application.SendKeys "{Down}"
        Application.SendKeys "{TAB}"
        Application.SendKeys " "
        Application.SendKeys "{TAB}"
        Application.SendKeys "chr(32)"
        Application.SendKeys "{Enter}"
Tà đạo ở cái {Down}
 
Lần chỉnh sửa cuối:
Upvote 0
Đặt đó đúng rồi. Mình đặt đó, chạy thì ra cái hình quỷ quái trên kia. Lạ thật. Hay là do cài song song 2003 & 2007?
Có khi nào liên quan giống gì đó trong Control Panel không sư phụ (vô lý nhưng... ai biết ông Bill nghĩ gì)
Máy em đang để mặc định theo US (trừ Date)
 
Upvote 0

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

Back
Top Bottom