Excel VBA列操作

Excel VBA列操作,excel,vba,Excel,Vba,我有非常丰富的经验,并尝试使用示例来实现我所需要的。 下面是我的第一步 Do While ActiveCell <> "END" 'Loops until the active cell is blank. ActiveCell.Offset(0, 1).FormulaR1C1 = _ ActiveCell.Offset(0, -1) & ActiveCell.Offset(0, 0) ActiveCell.Offset(1, 0).Sel

我有非常丰富的经验,并尝试使用示例来实现我所需要的。
下面是我的第一步

Do While ActiveCell <> "END"  'Loops until the active cell is blank.
     ActiveCell.Offset(0, 1).FormulaR1C1 = _
        ActiveCell.Offset(0, -1) & ActiveCell.Offset(0, 0)
    ActiveCell.Offset(1, 0).Select
Loop
Do While ActiveCell“END”循环,直到活动单元格为空。
ActiveCell.Offset(0,1)。公式1c1=_
ActiveCell.Offset(0,-1)和ActiveCell.Offset(0,0)
ActiveCell.Offset(1,0)。选择
环
然后我想做的是下一个“集合”列,例如A列和B列保存数据A可以固定,因为这是整个过程的共同点。当运行上述VBA时,它将填充C列。然后需要删除B列,剪切A列,将其插入D列之后,然后在D列之后插入空白列,以便可以执行连接过程,然后执行此操作,直到包含数据的最后一列,即工作表的末尾。 当宏的第一部分运行时,A和B在C中连接。 _A\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuue\uuuuuuuuuuuuuuuuuf
ZZS_uuuuuuuuuuuuuuuuuuuuuu007_uuuuuuuuuuo07_uuuuuuuuuuuuuuuuuuuuuuuuu008 uuuuuuuuuuuuuuuuuuuuuuuuuuuu010
AS-121-98-23-001
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 然后删除列B,并将空列放在C之后。
_A\uuuuuuuuuub\uuuuuuuuuuuc\uuuuuuuuuuuuuud\uuuuuuuuue\uuuuuuuuuuuf
ZZS_uuuuuuuuo07_uuuuuuuuuuuu008
009 uuuuuuuuuu010
同于AS121\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
结束结束
结束 A列和C列现在合并为D列。
_A\uuuuuuuuuub\uuuuuuuuuuuc\uuuuuuuuuuuuuud\uuuuuuuuue\uuuuuuuuuuuf
ZZS_uuuuuuuuuo07_uuuuuuuu008_uuuuuuuuuuuuuuu009_uuuuuuuuuuu010
AS-AS121-AS98-AS98-23-001
________结束(完)结束(完)结束(完)结束(完)结束(完)
现在删除了C列,并在D之后添加了空列,以此类推到列的末尾。
_A\uuuuuuuuuub\uuuuuuuuuuuc\uuuuuuuuuuuuuud\uuuuuuuuue\uuuuuuuuuuuf
ZZS_uuuuuuuuuuuzs007_uuuuuuuuuuuuuu08_uuuuuuuuuuu009_uuuuuuu..\u010
同于AS121、AS98、23、AS001

________结束(END)(END)(END)(END)(END)(END))(END)(END)(END)(strong)(

  Dim iRow&, iCol&, zRow&, zCol&
  zRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
  zCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
  For iCol = 2 to zCol ' or Do Until Cells(1, iCol) = ""? 
    For iRow = 1 To zRow ' or zRow-1?
      Cells(iRow, iCol) = Cells(iRow, 1) & Cells(iRow, iCol)
    Next iRow
  Next iCol
编辑:(更清楚地说:)我可能错了,但我看到您希望将A列中的单元格连接到所有其他列中的单元格。
你的工作如下:

0) You start with A, B, C, D, ..
1) Inserting X to get A, B, X, C, D, ..
2) Copying B to X to get A, B, B', C, D, ..
3) Concatenating A&B' to get A, B, AB', C, D, ..
4) Deleting B to get A, AB', C, D, ..
我建议你:

0) You start with A, B, C, D ..
1) Replace B with A&B to get A, AB, C, D, ..
所以一步比四步好?
如果我不在基地,我很抱歉。

您好,这是我最后使用的,谢谢您的反馈

Sub concatenate_strings()  
Dim i As Integer, j As Integer  
Dim last_row As Integer, last_col As Integer  
Dim first_str As String, sec_str As String  

Worksheets("Sheet1").Activate  

Range("A1").Select  
last_row = ActiveCell.End(xlDown).Row  
last_col = ActiveCell.End(xlToRight).Column  

With ActiveSheet  

For i = 1 To last_row  
        first_str = Cells(i, 1)
For j = 2 To last_col
        sec_str = Cells(i, j)
        Cells(i, j) = first_str & sec_str

    Next j

Next i

因为您使用的是Activecell,所以很难说您想要实现什么。如果你能说明前后的数据,那太好了。ZZS 007 008 009 010 ZZS 007 008 009 010 XM 006 007 008 009 LL 006 007 008 009 WG 006 007 008 009 XMO 006 007 008 009 ZZB 006 007 008 009 ZZB 006 007 008 009 4YA 118 120 121 4VN 006 007 008 009 VE 059 060 061 062结束,所以上面希望显示6个柱,第三列从前两列连接起来,第二列可以删除,下一列数字(文本)(前导零)将连接到数字行旁边的空列中,当然,除非您可以将文本和数字合并到数字列中,这意味着没有删除。我如何添加一个选择的电子表格或列,我看到上面已经拿走了我的格式。你能在你的问题中添加样本数据而不是评论吗。标记的正下方有一个编辑选项。因此,列C是连接的列。我只显示了两行,但这是向下的,但在列的底部有一个注释,该列在右边,直到第四页的末尾。很抱歉,我丢失了,不太擅长这一点,我已将其添加到上面所示vba的第一部分下面,所以它做了第一个concatenate实例,但随后转到A列并中断了我在那里的文本。我的数据从K列开始,如果这有意义的话,前几列包含与每行相关的其他数据。Thanks@user3736010-我的代码不是给了你想要的吗?或者将iRow=1的
更改为zRow
将iRow=1的
更改为zRow-1