2012-06-21 26 views
7

Điều này khá phức tạp, nhưng tôi sẽ cố gắng hết sức để giải thích rõ ràng nhất có thể. Xin vui lòng cho tôi biết nếu nó không có ý nghĩa.Hàm INDIRECT lồng nhau trong Excel - hoạt động trên một máy tính nhưng trả về #REF trên một máy tính khác

Tôi có hai sổ làm việc - một đầu vào và đầu ra. Chúng phải tách biệt vì cách thức hoạt động của hệ thống, nghĩa là 'người đề cử' thực hiện tất cả việc nhập vào một sổ làm việc đầu vào đơn giản và định dạng sổ làm việc đầu ra đã sẵn sàng để sử dụng. Để làm việc này, sổ làm việc đầu ra phải tham khảo sổ làm việc đầu vào để lấy các giá trị.

Tôi đã thử nghiệm điều này với cả hai sổ làm việc đang mở.

Để đạt được điều này, tôi sử dụng chức năng lồng nhau INDIRECT; đầu tiên tạo ra đường dẫn tập tin, gọi trên một phạm vi được đặt tên, và thứ hai nói với Excel để giải thích đường dẫn tập tin đó và lấy giá trị.

Tôi bắt đầu bằng cách sử dụng INDIRECT để xây dựng một filepath:

=INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$11" 

này trả về một cái gì đó như:

\\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11 

Và sau đó tổ nó trong một để có được Excel để đọc con đường đó:

=INDIRECT("'"&INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$12") 

Thành công này trả về giá trị của ô B12 từ input_s heet_location - một phạm vi được đặt tên, là một thư mục tệp. Vì lợi ích của đối số, chúng tôi có thể nói nó trả về:

Captain America's underpants 

Vì vậy, các công trình trên hoàn toàn phù hợp. Cho tôi. Tuy nhiên, trên máy của người dùng khác, nó không hoạt động. Tôi đã cố gắng đào sâu và làm việc như sau:

  1. Kết nối giữa các tệp hiện có trên hệ thống của họ - khám phá dữ liệu> Liên kết chỉnh sửa cho thấy chúng có cùng kết nối hoạt động giống như tôi.
  2. Đường dẫn tệp được tạo giống nhau; Tôi đã xây dựng một macro để hiển thị nó cho người dùng, và trên 3 máy, nó xuất hiện giống nhau mỗi lần.
  3. Hầu hết các yếu tố quan trọng (và gây nhầm lẫn), công thức INDIRECT không lồng nhau không hoạt động. Đó là chỉ công thức lồng nhau chỉ hoạt động trên máy tính của tôi. Trên mọi máy tính của người dùng khác, nó trả về lỗi #REF.

Có ai biết tại sao điều này có thể xảy ra không? Tôi đang thua lỗ.

Cảm ơn bạn đã đọc bài viết đó.

+2

Đây chỉ là một cảnh quay, nhưng tôi không biết liệu nó có giúp ích hay không, nhưng là sổ làm việc đầu vào mở trên các máy của người dùng khác, vì nó phải dành cho hàm gián tiếp để làm việc này. Bạn không thể (ít nhất là w/o VBA, mà tôi biết) cập nhật dữ liệu từ các công thức được liên kết mà không cần mở sổ làm việc. Excel lưu trữ liên kết khi bạn đóng sổ làm việc được liên kết, nhưng vì bạn đang sử dụng gián tiếp, nó sẽ không lưu trữ một liên kết, bởi vì có hiệu lực, bạn chưa thực hiện. Nếu liên kết ở đó, bạn sẽ được nhắc nhở để cập nhật nó và tất cả sẽ tốt. Nếu điều đó không hiệu quả, chúng ta có thể xem xét những thứ khác. –

+0

liên quan: http://stackoverflow.com/questions/9259862/executeexcel4macro-to-get-value-from-closed-workbook và http://stackoverflow.com/questions/9033656/copying-from-closed-workbook-excel -vba – JMax

+0

Cảm ơn Scott, điểm tốt. Câu trả lời là có, nó được mở. Tôi đã chỉnh sửa câu hỏi để phản ánh chi tiết này. – seegoon

Trả lời

2

Bạn cho biết công thức gián tiếp đầu tiên + bởi ghép trả về một giá trị như:

\\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11 

nên không phải là tên sheet có một dấu nháy đơn ở mỗi bên và trả về một giá trị như:

\\My Documents\Subfolder\[input_sheet.xlsx]'Wk 25 2012'!$B$11 

Tôi nhận thấy công thức thứ hai của bạn có báo giá duy nhất cho tên trang tính trước đường dẫn tệp.

Thay vì cố gắng hai công thức sau đây:

=INDIRECT("input_sheet_location")&"'Wk 25 2012'!$B$11" 

Và/hoặc

=INDIRECT(INDIRECT("input_sheet_location")&"'Wk 25 2012'!$B$12") 

Hãy cho tôi biết nếu họ làm việc cho bạn.

0

có thể là một câu hỏi ngớ ngẩn nhưng điều này thực sự có hiệu quả không?

= INDIRECT ("input_sheet_location") & "Wk 25 2012' ! $ B $ 11"

không ngoặc vào cuối _Location đóng chức năng gián tiếp? không nên nó được

= INDIRECT ("input_sheet_location" & "Wk 25 2012' ! $ B $ 11")

Ít nhất đó là cách duy nhất nó làm việc cho tôi là phải có cả con đường bên trong gián tiếp chức năng dấu ngoặc đơn.

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