2013-05-09 85 views
1

我已經創建了一個文本粘貼並輸出較低,UPPER和正確文本的工作表 我有一個介詞和文章的命名範圍capitalizerd。使用命名範圍替換excel中的介詞和文章

我嘗試使用替代公式,以取代所有出現在介詞列表

所以不是

Our Breakfast Is Consistent 

的出現或詞我們得到

Our Breakfast is Consistent 

至今我有這個公式,但它不起作用

=SUBSTITUTE(D6, TRIM(prepositions), TRIM(LOWER(prepositions)) 

任何人都可以幫忙。將是非常讚賞

感謝

安迪

回答

0

我將創建用戶定義的函數

Function prep_lower(the_text) 

    Dim prep_list(10, 10) 

    prep_list(1, 1) = "As" 
    prep_list(1, 2) = "as" 

    prep_list(2, 1) = "Or" 
    prep_list(2, 2) = "or" 

    prep_list(3, 1) = "Is" 
    prep_list(3, 2) = "is" 
    'more items...... 


    For n = 1 To UBound(prep_list, 1) 
    the_text = Application.WorksheetFunction.Substitute(the_text, Chr(32) & prep_list(n, 1) & Chr(32), Chr(32) & prep_list(n, 2) & Chr(32)) 
    Next 'For n = 0 To... 

    prep_lower = the_text 



    End Function 

然後輸入文本的最終值例如,單元格a1和公式=prep_lower(A1) in b1

+0

Excel for MAc 2008不支持VBA。這就是爲什麼我一直在嘗試使用一個功能來完成這項工作。不過,謝謝你,我可以利用這一點,並在PHP ... – user1712691 2013-05-14 05:48:01

+0

@ user1712691,很高興它幫助;當然,在PHP中,這將毫無疑問。我至少在Mac上學到了一些關於Excel的知識! – 2013-05-14 14:22:08

+0

沒有憂慮。我將在本週末嘗試PHP腳本。我會在這裏粘貼給大家使用。 :O) – user1712691 2013-05-16 10:23:52

0

不能使用SUBSTITUTE一重擊,以替換名單 - 你需要SUBSTITUTE一個項目的時間,所以如果你在F2有介詞:F5 ,例如,你可以使用像

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D6,F2,LOWER(F2)),F3,LOWER(F3)),F4,LOWER(F4)),F5,LOWER(F5))

當然的公式,如果你有一個長長的清單,是不是很實用,在這種情況下,你可能做的複製wn(或越過)一次可能代替一個數值的公式,例如與上面的例子中使用此公式中D7至D10

=SUBSTITUTE(D6,F2,LOWER(F2))

D10將與所有替換

+0

您好,我想它更容易做到這一點在PHP,而不是出類拔萃。使用選項設置表單並使用一些正則表達式來輸出我需要的文本類型。 - 謝謝Andi – user1712691 2013-05-14 05:50:40

0

我認爲在PHP中執行此操作更容易,一個excel。使用選項設置表單並使用一些正則表達式來輸出我需要的文本類型。

我會一旦創建了HTML,PHP將在此處發佈示例。 我也會將它作爲上傳CSV的選項,從中讀取,然後以您可以看到的方式輸出。通過補償導出爲CSV。

對於面臨相同問題的任何人,這可能會很有用。

感謝您發佈解決方案,我有這個問題的善良的用戶。

感謝

安迪