Board logo

標題: [發問] 求教參照代入公式? [打印本頁]

作者: mhl9mhl9    時間: 2013-9-11 18:55     標題: 求教參照代入公式?

A1        F:\th\               
A2        2013               
A3        A               
A4        9-Sep               
A5        09.xls               
A6        abcd               
A7        $AB$36               
                       
='F:\th\2013\A\09-Sep\[09.xls]abcd'!$AB$36                       
請問如何把A1:A7的參照寫到公式里去?
我是這樣寫的
="='" &A1&A2&"\"&A3&"\"&TEXT(A4,"dd-mmm")&"\["&A5&"]"&A6&"'!"&A7
得到的string是:
='F:\th\2013\A\09-Sep\[09.xls]abcd'!$AB$36
但這個公式就是不work,求各位幫手,謝謝!
作者: stillfish00    時間: 2013-9-11 20:21

回復 1# mhl9mhl9
=INDIRECT("'" &A1&A2&"\"&A3&"\"&TEXT(A4,"dd-mmm")&"\["&A5&"]"&A6&"'!"&A7)
作者: mhl9mhl9    時間: 2013-9-11 21:15

回復 2# stillfish00

let me try,thanks
作者: mhl9mhl9    時間: 2013-9-11 21:33

回復 2# stillfish00


    返回string是正確的但出了"Ref!",不能取得 F:\th\A\09-Sep\09.xls里Range("ab36")的值?
作者: Hsieh    時間: 2013-9-11 23:48

回復 4# mhl9mhl9

你將來源檔案開啟應該就能顯示
INDIRECT函數必須在外部參照檔案同時開啟才能正確取得
作者: mhl9mhl9    時間: 2013-9-12 00:39

回復 5# Hsieh


    即使我打開外部文件還是出"#Ref!"
indirect我是不能用,因為我不可能會打開外部文件,但是我輸入的字串完全和recorder顯示一模一樣,但就是not work
可能我沒把問題講清楚,是這樣的,我要用公式抓取 F:\th\2013\A\09-Sep\09.xls-----sheet1.range("ab36")的值
其中 F:\th\,2013,A,09-Sep,09.xls,sheet1,ab36 這7個data分別在 A1:A7,寫了多次都失敗,請各位幫忙指點,多謝了
作者: mhl9mhl9    時間: 2013-9-12 00:50

回復 5# Hsieh

用vb輸入公式是OK的,
  Selection.Formula = "='" & [$g$2] & Format([$j$2], "yyyy") & "\" & [$a3] & "\" & Format([$j$2], "dd-mmm") & "\[" & Format([$j$2], "dd") & ".xls]" & [G3] & "'!" & [$j3]
'以上輸入可以抓取值,但儲存格里留下的是"值",不是公式,我不能複製公式!
是不是可以改一改上面的輸入,可以輸入公式,而不是輸入值,就OK了,我改了100次,都失敗
作者: mhl9mhl9    時間: 2013-9-12 01:30

回復 2# stillfish00

indirect公式,當09.xls文件打開時,可以取得值
'=INDIRECT("'" &$A$1&$A$2&"\"&$A$3&"\"&TEXT($A$4,"dd-mmm")&"\["&$A$5&"]"&$A$6&"'!"&$A$7)

indirect公式,當09.xls文件關閉時,#REF!

拿走indirect,用以下公式輸入
'="='" &$A$1&$A$2&"\"&$A$3&"\"&TEXT($A$4,"dd-mmm")&"\["&$A$5&"]"&$A$6&"'!"&$A$7
儲存格顯示的是,但不能取得值
'='F:\th\2013\A\09-Sep\[09.xls]Sheet1'!AB36

用手工輸入以上公式,可以正常取得值
'='F:\th\2013\A\09-Sep\[09.xls]Sheet1'!AB36

用公式取得的字串和手工輸入的字串是一模一樣,但就是用公式輸入的not work,手工輸入就ok,希望你能幫忙指點迷徑,謝謝
作者: GBKEE    時間: 2013-9-12 06:07

回復 7# mhl9mhl9
  1. Sub Ex()
  2.     Dim S As String
  3.     S = "='" & [g2] & Format([j2], "yyyy") & "\" & [a3] & "\" & Format([j2], "dd-mmm") & "\[" & Format([j2], "dd") & ".xls]" & [G3] & "'!" & [j3]
  4.     Selection.Formula = S
  5. End Sub
複製代碼

作者: mhl9mhl9    時間: 2013-9-12 12:08

回復 9# GBKEE


    參看 7#,問題還是沒解決.
我想可能我的要求是無法達到的,我想問一問是不是作為worksheetfunction,公式的字串中2個單引號之間不能有"變數"
selection="=a1 & b1" ,selection可以取得帶變數的公式
selection="='a1 & b1'",selection取得的是string----a1&b1
我把你的vb輸入改成如下:
S = "='" & "g2" & "Text(j2, ""yyyy"")" & "\" & "a3" & "\" & "Text(j2, ""dd-mmm"")" & "\[" & "Text(j2, ""dd"")" & ".xls]" & "G3" & "'!" & "j3"
selection=s
selection得到一個錯誤的公式
我把錯誤的公式向下複製,看到只有"j3"會變,j4,j5,j6....
全中"g2","j2","a3","g3"都顯示字串,不能變
所以我想我的要求可能是違反什麽邏輯,是錯的
我記得如果路徑字串中沒有空格,那麼單引號就可以不用,我會試一試,不用但引號,能不能把變數顯示在公式中.
謝謝你的幫助.昨天忙了一天未能如愿,不得意而求其次,只能vb輸入全部公式,參數改變,就只能要user,按鍵求其值改變.
作者: GBKEE    時間: 2013-9-12 12:57

回復 10# mhl9mhl9
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar()
  4.     Ar = Array("a1", "A2", "A3")
  5.     Sheet1.[B1] = "=INDIRECT(" & Ar(0) & "&" & Ar(1) & "&" & Ar(2) & ")"
  6. End Sub
複製代碼
如圖

[attach]16049[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)