-1 Tôi có một số mã rất cơ bản và đơn giản VBA trong trường hợp Worksheet_SelectionChange
như sau:.Strange Excel VBA Lỗi "Expression quá phức tạp" # IND
btnB.Top = btnA.Top + btnA.Height
Nó chạy tốt trên máy tính của tôi, nhưng nó hoạt động không thường xuyên trên máy tính của đồng nghiệp của tôi. Có vẻ như 3 trong số 5 lần nhấp quanh trang tính sẽ xuất hiện lỗi "Expression Too Complex"
. Hai công việc khác mà không ném một lỗi. Tôi đã thử:
Dim D as Double:D = btnA.Top + btnA.Height
btnB.Top = D
Và điều tương tự, đôi khi có thể xảy ra lỗi. Khi lỗi xảy ra, tôi đã phá vỡ và kiểm tra giá trị của D
là "-1.#IND"
. Tôi googled giá trị đó và phát hiện ra nó có nghĩa là interdeterminate. btnA.Top
là khoảng 11.500 vì vậy nó không phải là một vấn đề tràn. Dường như không có vần điệu hay lý do nào cho vấn đề này. Trong 16 năm lập trình VB và VBA, tôi chưa bao giờ thấy hay nghe về bất cứ điều gì khá giống thế này. Cảm ơn sự giúp đỡ/thông tin chi tiết.
Sửa Full Code:
Sub LineUpBtns()
CommandButton2.Top = CommandButton1.Top + CommandButton1.Height
CommandButton3.Top = CommandButton2.Top + CommandButton2.Height
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LineUpBtns
End Sub
cách bạn có thể chỉ định một đôi để btnB.Top? –
Bởi vì nó là một đôi. TypeName (btnB.Top) = Double – DontFretBrett
BtnA, btnB là gì? Một số loại đối tượng dường như có một thuộc tính .Top là một đơn thay vì Double. EDIT: không bao giờ tâm trí - trả lời ngay bây giờ trong bình luận của bạn. –