在excel中编辑长字符串
我努力实现的目标: 我的单元格中有很长的字符串,我想编辑它们。然后我想把它们写回那个牢房 我已经尝试过的: 我试图将文本复制到word bullitpoint,然后将文本写回excel单元格。但这有点像用大锤敲碎坚果。我也知道输入框和msgbox,但我无法用它解决我的问题 我在寻找什么:在excel中编辑长字符串,excel,vba,Excel,Vba,我努力实现的目标: 我的单元格中有很长的字符串,我想编辑它们。然后我想把它们写回那个牢房 我已经尝试过的: 我试图将文本复制到word bullitpoint,然后将文本写回excel单元格。但这有点像用大锤敲碎坚果。我也知道输入框和msgbox,但我无法用它解决我的问题 我在寻找什么: 我正在寻找一个点击事件,该事件将我的文本放入一个弹出窗口,我可以在该窗口中编辑文本并将其写回释放事件的单元格,或者以其他方式编辑我的字符串。逻辑: 创建一个Userform,而不是使用Inputbox。以便您可
我正在寻找一个点击事件,该事件将我的文本放入一个弹出窗口,我可以在该窗口中编辑文本并将其写回释放事件的单元格,或者以其他方式编辑我的字符串。逻辑:
Userform
,而不是使用Inputbox
。以便您可以编辑文本MsgBox
是不可能的,因为您将无法编辑任何内容工作表\u Change
中启动userform,然后可以在那里编辑文本,最后将其写回工作表文本框
和命令按钮
。它可能看起来像这样
代码:将其粘贴到用户表单的代码中
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
正在运行的代码:
填充文本后,我们进行相关更改(我将第2句移至新行)并按下Update
按钮
逻辑:
Userform
,而不是使用Inputbox
。以便您可以编辑文本MsgBox
是不可能的,因为您将无法编辑任何内容工作表\u Change
中启动userform,然后可以在那里编辑文本,最后将其写回工作表文本框
和命令按钮
。它可能看起来像这样
代码:将其粘贴到用户表单的代码中
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
正在运行的代码:
填充文本后,我们进行相关更改(我将第2句移至新行)并按下Update
按钮
您具体的编程问题是什么?我很久以前创建了一个插件,它可以实现这一点。让我帮你查一下。但在此之前(既然你想在
事件中看到这个,我有一个简短的问题要问你。在弹出窗口出现之前字符串应该有多长时间?嗨!我刚刚计算了最长的长度,它最多有1200个字母。不,我说的是minimumAh,好的,最小值是两个字母。你具体的编程问题是什么?我很久以前创建了一个外接程序w。)这是谁做的。让我帮你搜索一下。但是在那之前(因为你想在事件中使用这个,我有一个简短的问题要问你。在弹出窗口出现之前字符串应该有多长时间?嗨!我刚刚数了最长的长度,它最多有1200个字母。不,我说的是minimumAh好的,最小值是两个字母。很高兴能提供帮助:)很高兴能帮上忙:)