我有一个excel,它是单个单元格中的长行(例如,Sheet1中的“ A1”中的一行),我需要拆分此单个单元格,并将其粘贴到Sheet1自身的不同连续单元格中的单元格A1,A2中,A3。,依此类推。但挑战在于,我在另一张图纸(Sheet2)中有定界符值。
Sheet1中的单个单元格(“ A1”)行是
2012-06-02-13.01.29.64179044558000358307267 CAB2019012018 12345612345678方案1 0000000000000000000000000000000000000000DoeNN
分隔符位于Sheet2中(分隔符值位于不同的连续单元格中),
4(A1),5(A2),6(A3),2(A4),3(A5),5(A6),6(A7),1(A8),5(A9),7( A10),5(A11),9(A12)
我尝试了以下代码,
Sub split_work()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim cell_value As Variant
Dim counter As Integer
Dim WrdArray() As String
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
With ws1
str = ws1.Cells(i, j).Value
MStr = ws2.Cells(Lengthrow, j).Value
'MStr = Left(str, MStr)
''These lines is to extract only the value from the cells in Sheet2 as a delimiter value, for example val=4, then we are extracting only 4 as delimiters,
MStr = Cells(Lengthrow, j).Value
MStr1 = InStrRev(MStr, "=")
Length = Len(MStr)
Mstr = Right(MStr, Length - MStr1)
For Each Item In WrdArray
ThisWorkbook.ActiveSheet.Cells(counter, 2).Value = Item
counter = counter + 1
Next Item
End with
End sub
请帮助我!
答案 0 :(得分:1)
我认为类似这样的方法可能对您有用。
Sub split_work()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim pStr As String
Dim delimiter As String
Dim counter As Integer
Dim lStr As Integer
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
pStr = ws1.Range("A1")
delimiter = ws2.Range("A1")
counter = 0
Do While delimiter <> ""
dpos = InStr(pStr, delimiter)
ws1.Range("A1").Offset(counter, 1) = Left(pStr, dpos)
lStr = Len(pStr)
pStr = Right(pStr, lStr - dpos)
counter = counter + 1
delimiter = ws2.Range("A1").Offset(counter, 0)
Loop
If pStr <> "" Then
ws1.Range("A1").Offset(counter, 1) = pStr
End If
End Sub
我不确定您是否使用这些值作为分隔符或在字符串中分割的位置。我假设您想在代码找到该子字符串时拆分该字符串。
此外,您是否要在字符串中包含或排除该值?在上面的代码中,我已经包含了该值,请在您的问题中提供更多信息,以便我更好地回答您的问题。