4

我无法将单个单元格的值拆分为两个不同的字符串并将这两个字符串放在不同的单元格中。

例如,我想10ft x 20ft在一个单元格中获取一个测量值10ft并将其放入另一个单元格中,然后20ft将其放入一个完全不同的单元格中。

我想使用分隔符x或其他东西,但我只是不知道如何进行这些分隔并在拆分后对它们做一些事情。

任何提示将不胜感激。我对 VBA 宏还是很陌生。

谢谢

4

3 回答 3

5

最好的解决方案是使用 SPLIT

Dim strX As String
Dim sx() As String
Dim i as Integer
strX = "10FT x 20FT"
sx = Split(strX, "x")

或者你可以使用 instr 函数

Dim sVar1 as string
Dim sVar2 as string

I = InStr(1, strX, "x")

现在你知道在哪里可以拆分 int 两个变量

sVar1 = mid(strX, 1, I)
sVar2 = mid(strx,i+1)

该函数的问题在于,如果链中有多个要用来分隔函数的键,则会返回一个更大的数组。例如: Dim var as string var = "x 20XP 10XP"

返回

array (0) = "10"
array (1) = "p"
array (2) = "20"
array (3) = "p"
于 2012-10-22T21:34:34.327 回答
5

您实际上并不需要 VBA。您可以使用 Excel 的文本到列

例如,在

  1. 数据.....文本到列
  2. 选择delimited并按下一步
  3. 检查空间并将“x”放入其他并按下一步
  4. 结束

在此处输入图像描述

于 2012-10-22T23:09:19.967 回答
1

我想我只是需要看起来更努力一点。

Sub Split_CutArea()
Dim str1() As String
Dim str2() As String
Dim avarsplit As Variant

avarsplit = Split(Cells(4, "B").Value, "x")
splitValues = Split(ActiveSheet.Cells(4, "B").Value)

ActiveSheet.Cells(22, "B").Value = splitValues(0) & splitValues(1)
ActiveSheet.Cells(23, "B").Value = splitValues(3) & splitValues(4)   
End Sub
于 2012-10-22T21:36:40.433 回答