选择使用VBA

选择使用VBA

问题描述:

我有一个完整的多行的单个细胞内像下面数据的列中的单元的整个值:选择使用VBA

image

我循环通过在列中的所有单元和I具有选择每个单元格内的值并在另一个表格中进行搜索。我知道我可以使用vba中的Split()函数来分割单元格值。

但是我碰到的是我无法选择单元格的整个值并将其解析为split()函数的输入。下面是我在哪里打我的示例代码:

For Each C in Range ("A1:A" & ltrow) 
    If C.Value <> "" Then 
     SrcStrng = C.Value 
     TextArray() = Split(SrcStrng) 
     ..... 
     ........ 
..... 

我在这里面临的问题是在SrcStrng只有第一个值只有T#234在第一小区的小区,例如内部获得存储,所以在分割字符串只有通过并且不能正确分割,所以我无法搜索t * 567。它发生在每个细胞。

而且在第三个单元格中,我只想解析搜索循环内的值t#345,忽略L1 :,我也对此感到震惊。

有人可以帮我这个请。

+0

如何Dim TextArray?你应该“Dim TextArray()String”。然后,当您使用Split时,请执行“TextArray = Split(SrcStrng)” –

+0

此外,如果您将列宽度变得更宽(在Excel中拖动列的右侧),那么您的值是否仍然出现在单独的行中,或者他们最终在一行上有多个值? –

+0

@RichHolton我确实将TextArray()声明为字符串,第二行中的文本是在单元格内的新行中使用“Alt + enter”输入的。 – S6633d

下面是一个例子来说明如何做到这一点。使用chr(10)作为分隔符

Sub t() 
    Dim str As String 
    str = Range("A1").Value 

    Dim parts As Variant 
    parts = Split(str, Chr(10)) 

    For i = LBound(parts) To UBound(parts) 
     MsgBox (parts(i)) 
    Next i 
End Sub 
+0

VBA具有内置的换行'vbLf'常量,这使得代码更具可读性并且比使用具有幻数的'Chr'功能更快。 – ThunderFrame

+0

@ThunderFrame chr(10)表示只有10个字符可以分割出来吗? – S6633d

+0

@ S6633d No. Chr(10)是一个函数,它返回一个字符的字符串 - 该字符的ASCII代码为10.这是一个称为LineFeed的特殊字符。当您按Alt + Enter键时,这是插入Excel单元格中字符的字符。 Split中的第二个参数是您想要分割的字符。如果你没有指定它,它默认为空白(或空格),你可以像这样指定:“”,或者使用Char(32)。你会希望像上面那样使用分割,就像nightcrawler23一样。 –