返回列表 上一主題 發帖

[發問] 有無辦法讓字串轉為對象的方法

[發問] 有無辦法讓字串轉為對象的方法

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

[版主管理留言]
  • GBKEE(2014/6/18 13:07): 可列出三種情形的結果看看

[回復  t8899

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

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

TOP

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

[回復 9# t8899

[A10] 的字串是??
讓字串轉為對象.對象(物件)是哪ㄧ種
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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

回復 5# t8899
.FormulaR1C1 = "=YEAR(TODAY()) - 1911&""/06/08"""
這雙引號內是VBA程式碼的文字表示,
工作表上公式的文字也是雙引號表示.
VBA程式碼在工作表上公式的文字,用兩個雙引號 表示為公式上的 "
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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


謝謝!我想知道的是VB的語法 (此區是程式區)

TOP

本帖最後由 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)函數回復結果為「"
請參考!

TOP

找儲存格的字做處理

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

TOP

本帖最後由 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"

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 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  '<==='答案 & 失去作用((舉例不當,替換後公式錯誤,邏輯對(三個個別代入都對))

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題