返回列表 上一主題 發帖

[發問] 是否有更適合字串的編輯修改呢?

[發問] 是否有更適合字串的編輯修改呢?

各位大大好:

   小弟想提供一表單供USER
可以對B欄位資料做編輯、修改字串內容。

須求如下:
一、儲存格的資料為英文及數值組合
二、須逹成儲存格的字元為12個字元
三、可插入字元、刪除字元、修改字元、替換字元

   小弟已完成一表單,不知是否有不週延之處。
另想請敎各位大大是否有更適合的
方式可供USER對儲存格的字串做上述的操作嗎?

  小弟同時也想請敎各位大大,在此一表單其
Set mSht1 = Worksheets("UPDATA")
如何可簡化僅列出一次而不必逐一列
出在不同的控制項裡設定呢?

謝謝各位大大。

CHARACTER.rar (22.82 KB)

本帖最後由 dechiuan999 於 2012-6-17 13:52 編輯

謝謝版主大大的指點。
直接使用REPLACE函數可提升
功能性。那是否有方法可使用
滑鼠直接選取Textbox1.Text的某一連續字串
並導入至Textbox2.text而不必輸入
要更換的字串呢?

下列是小弟另一簡易的表單

ComboBox1→指定要替換字串的次數
Textbox1 →由儲存格傳入的字串
Textbox2 →能否由滑鼠選取Textbox1的某一連續字串並導入至Textbox2呢?
Textbox3 →指定要更換的字串,須由鍵盤輸入字串

Private Sub CommandButton1_Click()
   
    Dim mTxt1$, mTxt2$, mTxt3$
    Dim C1%
   
    C1 = ComboBox1.Value    '指定要替換字串的次數
    mTxt1 = TextBox1.Text   '由儲存格傳入的字串
    mTxt2 = TextBox2.Text   '能否由滑鼠選取Textbox1的某一連續字串並導入至Textbox2呢?
    mTxt3 = TextBox3.Text   '指定要更換的字串,須由鍵盤輸入字串
   
    mTxt1 = Replace(mTxt1, mTxt2, mTxt3, 1, C1, vbTextCompare)    '直接引用Replace函數,逹成編輯、修改、刪除、替換。
   
    TextBox1.Text = mTxt1
    Range("A1") = TextBox1.Text
   
   
End Sub

Private Sub UserForm_Initialize()
   
    TextBox1.Text = "ABCDEFG1234D5D6"
    With ComboBox1    '
        .AddItem "1"
        .AddItem "2"
        .AddItem "3"
        .Value = 1
    End With
   
End Sub

test.rar (6.99 KB)

TOP

謝謝版主大大。
小弟已收下也研究好一陣子,
還是全然沒有完全領會其含意。
今天下午頭腦真的有點不清醒,
越想它頭腦就越轉不過來,只好先收兵
等頭腦清醒一點再好好研究它了。

感恩版主大大!

TOP

回復 6# GBKEE


    謝謝版主大大。
小弟日後會改進。
小弟正在求解中。
replace函數比小弟想像中
要複雜一些。

謝謝您!

TOP

回復 8# GBKEE


    謝謝版主大大。
版主大大再次提供Replace函數範例
在應用上的差異,也讓小弟理解
引數start及count 其中的變化。
小弟也了解自已在學習上
總是處在一知半解的狀態;
這也是讓小弟一直無法更
上一層的原因。
小弟也會將版主大大提供
的範例加以發揮及應用。

感恩大大!

TOP

回復 8# GBKEE


    版主大大您好:
小弟由版主大大提供的法中
多學到了Textbox三個屬性
SelText,SelLength,SelStar
另小弟也發現SelStar的起算
是由0起算。因此,語法上小
弟也修正為
If Shift = 4 And KeyCode = 13 Then TextBox4 = TextBox1.SelStart + 1

另TextBox2_Change內有二點疑惑
一、
xText = Mid(xText, InStr(xText, TextBox2) + Len(TextBox2))
有何用意呢?
二、
Do While InStr(xText, TextBox2)
此語法與小弟的認知有所不同
小弟改成
x2=InStr(xText, TextBox2)
do while x2
就會產生無窮迴圈
小弟就不知版主大大的
語法為何不會產生無窮迴圈呢?

謝謝版主大大。

TOP

回復 11# GBKEE


    版主大大早安:

小弟已領悟語法中
DO WHILE的變化了。
Sub aa()
    Dim mFlag As Boolean
    mFlag = True
    Do While mFlag
        MsgBox "現在測試中"
        mFlag = False
    Loop
End Sub

版主大大是利用
InStr(xText, TextBox2)及xText
的改變

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題