2011-01-31 66 views
22

Tại một thời điểm nào đó, tôi vô tình đặt tên biến là range (tất cả chữ thường) và từ đó trình soạn thảo Visual Basic for Applications từ chối sử dụng Range (Pascal-cased); nó sẽ tự động sửa nó thành chữ thường. Làm thế nào tôi có thể thiết lập lại "bộ não" của mình để quên đi quá khứ của tôi?Làm cách nào để khôi phục trường hợp mặc định thành biến trong VBA (Excel 2010)?

LƯU Ý: Tôi đã thử thực hiện thay thế toàn cục, nhưng thời điểm tôi chỉnh sửa bất kỳ dòng nào - nó sẽ sửa lại một lần nữa.

Rõ ràng đây là rất rất nhỏ, vấn đề về mỹ phẩm nhưng xem R đi khập khiễng mỗi khi tôi nhập Range là khó chịu.

+4

Đó là một rất * rất * nhỏ, vấn đề thẩm mỹ cho đến khi bạn bắt đầu cố gắng đặt mã VBA của bạn vào các hệ thống điều khiển phiên bản không thể bỏ qua trường hợp (ví dụ, chẳng hạn như mercurial). Tại thời điểm đó nó trở nên rất * rất * trầm trọng hơn. – mwolfe02

Trả lời

35

Bạn cần thay đổi tên của biến trong một dòng khai báo (ví dụ: Dim tuyên bố) ở đâu đó (ở bất kỳ đâu, trên thực tế).

Đây là một trong những "tính năng" gây phiền nhiễu nhất của IDE VBA (như thể điều khiển phiên bản không đủ cứng với VBA, việc thay đổi trường hợp ổ đĩa không đổi). Các biến có trường hợp của chúng được thay đổi trên toàn cầu trong IDE VBA, bất kể phạm vi thực tế của biến. IDE VBA dường như có cách tiếp cận của các tuyên bố khai báo gần đây nhất.

Thường là tất cả những gì bạn cần làm là chỉ cập nhật trường hợp trong một dòng khai báo ở đâu đó, nhưng VBA có thể trở ngại. Tôi chưa giải mã hoàn toàn.

Lưu ý: Như @Scorchio chỉ ra trong các nhận xét bên dưới, trường hợp biến được thay đổi trên toàn cầu trong dự án hiện tại; các dự án khác có thể mở trong IDE VBA (chẳng hạn như các sổ làm việc khác khi làm việc trong Excel) KHÔNG bị ảnh hưởng.

+8

Gah, tất nhiên rồi! Tôi chỉ cần đặt một "Dim Range như String" trong, VBA cố định tất cả các lần xuất hiện đó, và sau đó xóa dòng đó. Cảm ơn bạn :) –

+3

Làm cách nào để sống sót mà không có kiến ​​thức này? –

+4

"Đây là một trong những tính năng" khó chịu "nhất của IDE VBA". Bạn đóng đinh nó. Tôi không thể chịu đựng được hành vi này – JohnZaj

10

Tuyên bố cuối cùng về thời gian thắng.

  1. Go trên dòng đầu tiên và gõ Dim Range As String
  2. Di chuyển đến dòng kế tiếp
  3. Quay trở lại và loại bỏ của bạn Dim Range As String
+0

Tương tự như vậy, nếu bạn quản lý để đặt tên một biến giống như một đối tượng tiêu chuẩn, và bây giờ vỏ của đối tượng là sai lầm, hãy làm một mẹo tương tự: 'Private WithEvents querytable Như querytable' theo sau là' Private WithEvents QueryTable As QueryTable'. Nhấn enter, cả hai đều nên viết hoa. – mcw0933

Các vấn đề liên quan