使用Excel vba下一行中的公式拆分单元格

使用Excel vba下一行中的公式拆分单元格,excel,excel-formula,vba,Excel,Excel Formula,Vba,我正在尝试将单元格拆分,如果包含“,”到下一行,我将使用此公式从sheet1(=sheet1!B3)等获取数据,数据位于B3:AF50中。 我使用这个vba代码 Sub splitcells() Dim InxSplit As Long Dim SplitCell() As String Dim RowCrnt As Long With Worksheets("Sheet2") RowCrnt = 3 Do While True If .Cells(RowCrnt, "b")

我正在尝试将单元格拆分,如果包含“,”到下一行,我将使用此公式从sheet1(=sheet1!B3)等获取数据,数据位于B3:AF50中。 我使用这个vba代码

Sub splitcells()
Dim InxSplit As Long
Dim SplitCell() As String
Dim RowCrnt As Long

 With Worksheets("Sheet2")

 RowCrnt = 3

 Do While True


  If .Cells(RowCrnt, "b").Value = "" Then
    Exit Do
  End If

  SplitCell = Split(.Cells(RowCrnt, "b").Value, ",")

  If UBound(SplitCell) > 0 Then

    .Cells(RowCrnt, "b").Value = SplitCell(0)


    For InxSplit = 1 To UBound(SplitCell)
      RowCrnt = RowCrnt + 1

      .Cells(RowCrnt, "b").Value = SplitCell(InxSplit)

      .Cells(RowCrnt, "B").Value = .Cells(RowCrnt - 1, "B").Value
    Next
  End If

  RowCrnt = RowCrnt + 1

  Loop

End With

End Sub
问题是

  • 我不知道如何在这个代码中给出范围(B3:Af50)
  • 此代码未保留我的代码(=表1!)
  • 它只是复制“,”之前的值
我的细胞值是这样的

B3 ABC、XYZ、KKK、LLL 我想把它分成B3=ABC和B4=XYZ B5=KKK b6=LLL

如果B3中的值发生变化,则应清除提前拆分的单元格(B4、B5、B6),并在需要拆分时更新标准“,”

你有那样的床单吗

拆分后的公式应保持原样

不需要VBA

将数据放入Sheet1单元格B3,将其放入任何工作表的任何单元格:

=TRIM(MID(SUBSTITUTE(Sheet1!$B3,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
然后抄过来

编辑#1:

要向下复制,请使用以下公式:

=TRIM(MID(SUBSTITUTE(Sheet1!B$3,",",REPT(" ",999)),ROWS($1:1)*999-998,999))

它将其拆分为列,并且如果表1中的值为“更改”,则不会更新表2@MuhammadKhurrumButt请参见我的编辑#1:编辑#1工作正常,但仅在前4行中,未涵盖全部B3:AF50@MuhammadKhurrumButt我想你需要改变地址!B4等