Board logo

標題: [發問] 有無辦法讓字串轉為對象的方法 [打印本頁]

作者: t8899    時間: 2014-6-16 06:43     標題: 無法找到字符

本帖最後由 Hsieh 於 2014-6-16 09:34 編輯

[a1]=YEAR(TODAY()) - 1911&"/06/08"
替換 & 為 abc
[a1].Replace "&", "abc"
[a1].Replace chr(38), "abc"
都找不到 &
& " 替換或被替換都有問題,如何把它當成一般的字??
看以下這篇文章,還是無解.............
http://support.microsoft.com/kb/147687/zh-tw
作者: Hsieh    時間: 2014-6-16 09:55

回復 1# t8899

儲存格的Replace方法,是對文字內容取代,並非對公式內容作取代
要讓公式改變可使用取出公式字串,再使用Replace函數作字串取代,然後再寫入儲存格
不過因為你取代的字串會造成公式錯誤的話,在寫入時就會出錯
[A1] = Replace([A1].Formula, "&", "abc")
作者: t8899    時間: 2014-6-16 12:09

本帖最後由 t8899 於 2014-6-16 12:20 編輯
回復  t8899

儲存格的Replace方法,是對文字內容取代,並非對公式內容作取代
要讓公式改變可使用取出公 ...
Hsieh 發表於 2014-6-16 09:55


[a1]=YEAR(TODAY()) - 1911&"/06/08"
如果我改為 替換 &"/06/08" (即&後面的字全替換) 為 +10  (這樣改後公式是正確的,答案為113)


[a1]=Replace([A1].Formula, "&"/06/08"", "+10")
出現 語法錯誤 ??
---------------------------------------------------
原1樓我想到的另外方法是
[a1]=YEAR(TODAY()) - 1911&"/06/08"  '求 替換 & 為 abc  
DIM A,B,C,D,E
D = InStr([a1].Formula, Chr(38)) '&在左邊第幾字,即&左邊共幾字(含&)
A = Left([a1].Formula, D - 1) '扣掉& ,取&左邊剩下的字
B = Len([a1].Formula) ' 全部的字數
C = B - D '& 右邊的字數
E = Right([a1].Formula, C) '右邊的字
[a25].Formula = A & "ABC" & E  '<==='答案 & 失去作用((舉例不當,替換後公式錯誤,邏輯對(三個個別代入都對))
作者: GBKEE    時間: 2014-6-16 13:33

回復 3# t8899


   
[a1]=YEAR(TODAY()) - 1911&"/06/08"
如果我改為 替換 &"/06/08" (即&後面的字全替換) 為 +10  (這樣改後公式是正確的,答案為113)
  1. Sub Ex()
  2.     With Range("A1")
  3.         .FormulaR1C1 = "=YEAR(TODAY()) - 1911&""/06/08"""
  4.         [A2] = Mid(.Formula, 1, InStr(.Formula, "&") - 1) & " + 10"
  5.     End With
  6. End Sub
複製代碼

作者: t8899    時間: 2014-6-16 14:27

本帖最後由 t8899 於 2014-6-16 14:37 編輯
回復  t8899
GBKEE 發表於 2014-6-16 13:33

                原來     =YEAR(TODAY()) - 1911&"/06/08"
.FormulaR1C1 = "=YEAR(TODAY()) - 1911&"/06/08""   <===引到公式因該是
.FormulaR1C1 = "=YEAR(TODAY()) - 1911&""/06/08"""  為何放到程式視窗會自動多加引號??

直接抓儲存格裡的值沒問題
  [A2] = Mid(Range("A1").Formula, 1, InStr(Range("A1").Formula, "&") - 1) & " + 10"
作者: t8899    時間: 2014-6-16 21:33     標題: 找儲存格的字做處理

找A欄的所有單元格裡面的字,
1.假如有 & 此字則刪除此字
2.假如有 & 此字則替換為""
3.假如有 & 此字則在此字的前面加""
這三情況,程序應如何寫??(儲存格包含公式)
作者: p212    時間: 2014-6-17 08:56

本帖最後由 p212 於 2014-6-17 08:59 編輯

回復 1# t8899
假設儲存格A1值為「甲&此字」
Q1.假如有 & 此字則刪除此字
       A1: 儲存格B1公式輸入=SUBSTITUTE(A1,"此字",""),結果為「甲&」。
Q2.假如有 & 此字則替換為""
       A2: 儲存格B1公式輸入=SUBSTITUTE(A1,"此字",CHAR(34)&CHAR(34)),結果為「甲&""」。
Q3.假如有 & 此字則在此字的前面加""
       A3: 儲存格B1公式輸入=SUBSTITUTE(A1,"此字",CHAR(34)&CHAR(34)&"此字"),結果為「甲&""此字」。
CHAR(34)函數回復結果為「"
請參考!
作者: t8899    時間: 2014-6-17 09:50

回復  t8899
假設儲存格A1值為「甲&此字」
Q1.假如有 & 此字則刪除此字
       A1: 儲存格B1公式輸入=S ...
p212 發表於 2014-6-17 08:56


謝謝!我想知道的是VB的語法 (此區是程式區)
作者: t8899    時間: 2014-6-18 06:56     標題: 有無辦法讓字串轉為對象的方法

將[A10]裡的第三字刪除 (不要用REPLACE,用DELETE屬性)
Sub MA3333()
DIM D
SET d = Mid([A10], 3, 1) '型態不符合, ,有無辦法讓字串轉為對象的方法
  d.Delete
End Sub
作者: GBKEE    時間: 2014-6-18 07:08

本帖最後由 GBKEE 於 2014-6-18 07:10 編輯

回復 5# t8899
.FormulaR1C1 = "=YEAR(TODAY()) - 1911&""/06/08"""
這雙引號內是VBA程式碼的文字表示,
工作表上公式的文字也是雙引號表示.
VBA程式碼在工作表上公式的文字,用兩個雙引號 表示為公式上的 "
作者: GBKEE    時間: 2014-6-18 07:18

本帖最後由 GBKEE 於 2014-6-18 07:24 編輯

[回復 9# t8899

[A10] 的字串是??
讓字串轉為對象.對象(物件)是哪ㄧ種
作者: t8899    時間: 2014-6-18 08:56

[回復  t8899

[A10] 的字串是??
讓字串轉為對象.對象(物件)是哪ㄧ種
GBKEE 發表於 2014-6-18 07:18

抱歉,我是想學習,所以以下列三種情形都做假設
1.文子
2.數字
3.公式裡的字




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