Tôi có một vĩ mô ngắn mà đặt một ô trong chế độ chỉnh sửa bằng cách sử dụng lệnh:nào Window đang hoạt động
Application.SendKeys "{F2}"
Các dòng mã chạy đúng nếu vĩ mô đang chạy từ bảng tính sử dụng, ví dụ, bình thường Ribbon giao diện (có nghĩa là vì F2 đặt ô hiện hành vào Edit Mode)
Nếu tôi chạy macro từ cửa sổ VBE, macro thất bại vì VBE giải thích s F2 là lệnh để hiển thị Trình duyệt đối tượng.
tôi muốn bao gồm một thử nghiệm trong vĩ mô để kiểm tra này:
Nếu tính được gọi là cửa sổ hoạt động, tiến hành chạy.
Nếu VBE là cửa sổ hoạt động, sau đó phát hành cảnh báo MsgBox và hủy bỏ.
Tôi không biết cách xác định cửa sổ nào đang hoạt động. ActiveWindow.Caption
luôn hiển thị nội dung nào đó như:
Book1.xlsm
Xem nếu điều này giúp: http://stackoverflow.com/questions/33266859/vba-copypastecode-with -sendkeys/33269447 # 33269447 –
Giá trị trong ô có thay đổi không nếu trang tính đang hoạt động. Bạn có thể kiểm tra thay đổi không? Thay vì sử dụng SendKeys, bạn có thể sử dụng InputBox thay thế không? –
@ScottCraner Ý tưởng là tốt, nhưng nó vẫn rời khỏi cửa sổ * VBE * tập trung ................ Phương pháp của Rodger hoạt động! –