2011-10-17 21 views
5

Tôi cố gắng để viết công thức này sử dụng VBA:Khi viết chuỗi đến một ô, VBA chèn thêm nháy đơn đánh dấu

ActiveCell.Value = "=f(R[-1]C[0],Sheet1!" & ColumnLetter & i & ")" 

đâu ColumnLetter là một số bức thư biến mà tính vĩ mô của tôi trước đó, và f là một số chức năng và tôi là một số.

Vấn đề là khi tôi chạy này, các tế bào được đưa ra này để thay thế: (nếu ColumnLetter = F, i = 16):

=f(R[-1]C[0],Sheet1!'F16') 

nhưng tôi muốn:

=f(R[-1]C[0],Sheet1!F16) 

Tại sao sao VBA hoặc Excel đặt những dấu nháy đơn xung quanh F16? Nó không chèn thêm dấu ngoặc kép nếu tôi không bao gồm R [-1] [0] làm đối số trong công thức của tôi, nhưng tôi cần bao gồm điều này.

Giúp đánh giá cao!

+0

những gì bạn đang có ý định làm gì? có vẻ như bạn đang trộn ký hiệu 'R1C1' và' A1'. Xem: http://www.lytebyte.com/2008/04/29/what-are-a1-and-r1c1-reference-style-in-excel/ – JMax

+0

Không thể sử dụng cả hai? Tôi muốn lấy 2 đối số cho hàm của tôi, một đối số từ ô bên trái và một đối số từ một trang tính khác trong cột "ColumnLetter" và hàng "i". – Derek

Trả lời

8

Kết hợp số điện thoại R1C1A1. Bạn cần phải chọn một phương pháp và sử dụng nó cho cả hai phần.
Lưu ý rằng nếu bạn nhập =f(R[-1]C[0],Sheet1!F16) vào ô, bạn sẽ gặp lỗi vì lý do tương tự.

Bạn nói rằng bạn cần phải sử dụng R1C1 phong cách cho địa chỉ đầu tiên, nhưng (giả định này là bởi vì bạn không muốn địa chỉ tuyệt đối), bạn có thể sử dụng thay vì .Offset

ActiveCell.Value = "=f(" & Replace(ActiveCell.Offset(-1, 0).Address, "$", "") _ 
& ",Sheet1!" & ColumnLetter & i & ")" 
+0

Hoàn hảo, chính xác những gì tôi muốn và hoạt động như một sự quyến rũ. Đó là một sự xấu hổ bạn không thể kết hợp các định dạng ... Tôi may mắn rằng một trong những biến tương đối tôi muốn là đơn giản để làm việc ra ngoài. Cảm ơn vì đã dành thời gian cho tôi! – Derek

+0

+1 cũng được bảo vệ. – brettdj

1

Dấu nháy đơn có nghĩa là Excel phải hiểu nó là văn bản.

Viết thư cho ActiveCell.Formula. Bằng cách đó, nó được công nhận là Công thức.

+0

Nó sẽ không hoạt động, các trích dẫn được Excel thêm vào khi tạo công thức – JMax

+0

Tôi nhận ra rằng nó không hoạt động ... có công việc nào không? – Derek

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