Chạy VBA trong XP Tôi có thể gọi ActivateKeyboardLayout để chuyển ngôn ngữ nhập liệu của tôi từ tiếng Anh sang ngôn ngữ khác. Tuy nhiên, điều này không còn hoạt động trong Vista64 nữa.Làm thế nào tôi có thể gọi ActivateKeyboardLayout từ 64bit Windows Vista bằng VBA
Bất kỳ đề xuất hoặc cách giải quyết nào?
Mã được sử dụng để làm việc dưới XP là tương tự như sau:
Private Declare Function ActivateKeyboardLayout Lib "user32" (_
ByVal HKL As Long, ByVal flags As Integer) As Integer
Const aklPUNJABI As Long = &H4460446
ActivateKeyboardLayout aklPUNJABI, 0
Có một gợi ý để thử
Public Declare Function ActivateKeyboardLayout Lib "user32" (_
ByVal nkl As IntPtr, ByVal Flags As uint) As Integer
Khi tôi cố gắng này, tôi nhận được thông báo lỗi:
Biến sử dụng loại Tự động hóa không được hỗ trợ trong Visual Basic
Thú vị , Tôi sẽ kiểm tra xem trên cấu hình của tôi (Vista 64) ở nhà. Bạn có liên kết mã với cuộc gọi VBA truy cập của mình không? – VonC
Tôi đã cập nhật câu hỏi với mã số – Noah
Bạn đã đúng. Một mục mà tôi không biết là các hằng số bàn phím có thể khác nhau, tùy thuộc vào phiên bản bàn phím được tải. Điều này dẫn tôi đến quan điểm sai lầm rằng mã của bạn không chính xác. Lỗi là của tôi. Tôi đã cố gắng khắc phục điều này bằng cách sửa đổi câu hỏi. – Noah