我有一个UserForm(frm10),有两个文本框(txt11和txt12)。 两个文本框都包含值列表。
有没有办法可以复制底层工作表(Sheet1)中这些框的值,以便每个值都出现在一个单独的单元格中? 我需要来自txt11的所有值出现在我的工作表的A列中,并且需要来自同一工作表的B列中的txt12的所有值。
非常感谢你提供任何帮助,蒂姆。
答案 0 :(得分:1)
这取决于您的分隔符,但是下面的内容会起作用,稍微整齐一点(我还没有使用UserForms 长时间,但方法将是相同的),你只需要适应两者,改变目的地开始等:
已编辑,因此您可以设置分隔符
'If you value list is separated by comma
Dim x As Integer, y As Integer
Dim str1 as String, strDelim as String
Dim sh As Worksheet
Dim c As Range
str1 = txt11 '(can't recall how you allocate from userform to variable...)
strDelim = Chr(10) ' chr(10) is new line feed, you may need to test what the
' delimiter is, it could be chr(13) (carriage return)
' Add trailing comma so captures last value
If Right(str1, 1) <> strDelim Then
str1 = str1 & strDelim
End If
' Set sheet and destination for values to start
Set sh = Worksheets("Sheet1")
Set c = sh.Range("A1")
' Set initial x and y
x = InStr(str1, strDelim)
y = 1
' Check at least 1 comma and that value was entered
If x = 0 Then
If Len(str1) > 0 Then
c.Value = str1
End If
End If
' Loop through commas, paste value in cell and offset destination
Do Until x = 0
c.Value = Mid(str1, y, x - y)
y = x + 1
x = InStr(y, str1, strDelim)
Set c = c.Offset(1, 0)
Loop
Set c = Nothing
Set sh = Nothing
如果分隔符取决于他们如何输入新行,那么您可以替换所以它们都是相同的
str1 = Replace(str1,chr(13),chr(10))
然后使用chr(10)作为分隔符
答案 1 :(得分:0)
不知道这是否可行,但是...
...假设每个文本框中的值已经被分隔
Private Sub CommandButton1_Click()
Me.TextBox1.Copy
Range("A1").PasteSpecial Paste:=xlPasteAll
Me.TextBox2.Copy
Range("B1").PasteSpecial Paste:=xlPasteAll
结束子