2012-07-11 23 views
7

Tôi gặp sự cố với macro VBA này.Làm thế nào để VBA thay đổi giá trị của ô (văn bản hiển thị) mà không thay đổi công thức của nó?

Sub demoChangeText() 
    Application.Range("B2").Value = "Overidden text" 
End Sub 

Thử nghiệm của tôi là here. Để chạy macro này, hãy mở macro này trong Excel, nhấn Ctrl+F8 và chọn demoChangeText.

Kết quả là macro này thay đổi giá trị của ô B2 (văn bản được hiển thị cho chúng tôi) nhưng xóa công thức của nó. Tôi cần phải thay đổi giá trị của B2 NHƯNG cũng cần công thức để được duy trì.

Vì vậy, câu hỏi của tôi là Làm cách nào để thay đổi văn bản hiển thị của ô mà không thay đổi công thức của ô?

CẬP NHẬT

Tôi hỏi câu hỏi này vì tôi đang cố gắng để giải quyết this problem

+1

Don' t nghĩ rằng có ý nghĩa. Công thức là cái xác định hiển thị. Nếu bạn muốn thay đổi hiển thị, sau đó thay đổi công thức. Nếu bạn thay đổi giá trị thành "Văn bản ghi đè", về cơ bản bạn thay đổi công thức thành một công thức nhỏ có nội dung "Xuất văn bản này .." –

+0

@Davuz ChrisNeilsen trả lời câu hỏi của bạn một cách hoàn hảo. Tôi cũng đính kèm tệp giải pháp trong câu trả lời của mình bên dưới –

Trả lời

11

Tôi không chắc chắn nếu điều này sẽ giúp, vì nó là một chút khó có thể nói những gì yêu cầu cơ bản của bạn là, nhưng ở đây đi anyway:

vài điều ảnh hưởng đến hiển thị của một tế bào:

  1. giá trị nhập vào, nếu liên tục một mình
  2. kết quả của một phép tính, nếu nó là một công thức
  3. định dạng của các tế bào
  4. định dạng có điều kiện (s) của tế bào, nếu có

trong tờ dụ miễn là bạn có một công thức của =ROW()&COLUMN() mà trả về một chuỗi kết quả của 22

bạn có thể làm cho điều này hiển thị một cái gì đó e LSE bằng cách áp dụng một định dạng tế bào,
ví dụ như một dạng của 0;0;0;Ov\e\r\ri\d\d\e\n t\ext sẽ hiển thị bất kỳ chuỗi giá trị như Overridden text

Điều này có thể bởi áp dụng với VBA với

Range("B2").NumberFormat = "0;0;0;Ov\e\r\ri\d\d\e\n t\ext\s" 

hoặc

Range("B2").NumberFormat = "0;0;0;""Overridden texts""" 
+1

+ 1 Giải thích tốt :) Có một cách để thay đổi văn bản hiển thị. –

+5

+1 Bạn cũng có thể gửi kèm theo dấu ngoặc kép thay vì thoát định dạng của từng chữ cái. '" 0; 0; 0; "" Văn bản ghi đè "" "' –

+0

@ChrisNeilsen Tuyệt vời! Đây là tệp thử nghiệm được cập nhật với câu trả lời của bạn https://dl.dropbox.com/u/6194904/2012/TestChangeText.xlsm –