我試圖完成的事情: 我在我的單元格中有很長的字符串,並且想要編輯它們很舒服。之後,我想把它們寫回到那個單元格中。在Excel中編輯長字符串很舒服
我已經試過了: 我試圖將文本複製到單詞bullitpoint分離並將文本寫回excel單元格。但這有點像用大錘打破堅果。我也知道輸入框和msgbox,但我無法解決這個問題。
我所期待的: 我要尋找的是把我的文字變成一個彈出窗口,在那裏我可以編輯的文字,並將其寫入回該版本的事件或另一種方式來編輯單元格單擊事件我的琴絃很舒服。
我試圖完成的事情: 我在我的單元格中有很長的字符串,並且想要編輯它們很舒服。之後,我想把它們寫回到那個單元格中。在Excel中編輯長字符串很舒服
我已經試過了: 我試圖將文本複製到單詞bullitpoint分離並將文本寫回excel單元格。但這有點像用大錘打破堅果。我也知道輸入框和msgbox,但我無法解決這個問題。
我所期待的: 我要尋找的是把我的文字變成一個彈出窗口,在那裏我可以編輯的文字,並將其寫入回該版本的事件或另一種方式來編輯單元格單擊事件我的琴絃很舒服。
邏輯:
Userform
而不是使用Inputbox
。以便您可以編輯文本。 MsgBox
是不可能的,因爲你將無法編輯任何東西。Worksheet_Change
中啓動用戶窗體,然後您可以在其中編輯文本並最終將其寫回工作表。基本準備:
打開VBA編輯器,並插入一個用戶窗體。添加一個TextBox
和一個CommandButton
。它可能看起來像這樣。
代碼:在用戶窗體的代碼
Private Sub UserForm_Initialize()
With TextBox1
.MultiLine = True
.WordWrap = True
.ScrollBars = fmScrollBarsVertical
.EnterKeyBehavior = True
End With
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
代碼粘貼這樣的:在相關工作表的代碼區
'~~> Length of characters
Const nChars As Long = 2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sString As String
On Error GoTo Whoa
'~~> Check if there was a Paste/Autofill done
If Target.Cells.CountLarge > 1 Then Exit Sub
Application.EnableEvents = False
'~~> Check if the length is more than 2
If Len(Target.Value) > nChars Then
'~~> Set the userform's textbox text
With UserForm1
.TextBox1.Text = Target.Value
.Show
'~~> Get the value back to the sheet
Target.Value = .TextBox1.Text
End With
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
代碼在行動粘貼此:
一旦文本填充,我們作出相應的修改(我把第二個句子到新行),然後按Update
按鈕。
This works great !!!非常感謝你! – ruedi
很高興有幫助:) –
**你有什麼具體的方案問題?** – 2013-10-21 08:59:43
我創建了一個附加在很久以前它做到這一點。讓我爲你搜索它。但是在此之前(因爲你想在'事件'中找到這個,所以我很快就會問你,在彈出窗口之前應該彈出多長的字符串? –
嗨!我剛剛計算了我擁有的最長時間,最長爲1200個字母 – ruedi