遍历列和行

我有一个由多列组成的Excel工作表。 在每一列中有多行 – 不总是相同的行数,但从来没有更多,然后从第8行到第208行。我需要在新列中的每列的所有值作为一个有序列表,从第3列开始(是C )直到第23栏(即Z)。 我需要这个新的列(位于同一张表的AB位置)与所有值和没有空行,因为它是一个下拉列表的来源。

这是,我到目前为止,但它不起作用:

Sub createDDICListe() Dim c Dim counter Dim cnt Dim Start Dim Ende Start = 8 Ende = 208 counter = 8 cnt = Start Set Spalten = ["C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"] ActiveSheet.Range("AB7") = "DDIC-Liste:" For Each c In Spalten cnt = Start On Error Resume Next For cnt = Start To cnt <= Ende Dim Cell Cell = Cells(cnt, c) If IsError(Cell) Or Cell.Value = False Or Cell.Value = "" Then GoTo weiter Else Cells(counter, "AB").Value = Cell.Value counter = counter + 1 End If cnt = cnt + 1 Next weiter: Next End Sub 

如何遍历列,并在这个“为每个循环”遍历行并在行中复制新列的单元格值?

应该很快就能做好工作:

 Sub MacroMan() Dim x, y x = [C8:Z208] Range("AB7").Value = "DDIC-Liste:" For Each y In x If Not y = vbNullString Then Range("AB" & Rows.count).End(xlUp).Offset(1, 0).value = y Next End Sub 

这应该做的工作:

 Dim pasteCell As Range, origin As Range Set pasteCell = [AB1] 'Destination Dim firstRow as Long firstRow = 1 For columnIndex = 3 To 26 Step 1 'Columns from C to Z Set origin = Range(Cells(firstRow , columnIndex), Cells(firstRow , columnIndex).End(xlDown)) origin.Copy pasteCell.Insert xlShiftDown, origin Next columnIndex Set origin = Nothing 

您可以修改目标单元格,当然也可以修改每列的第一个复制行。