我有一张包含多列的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
如何迭代列和#34;对于每个循环&#34;迭代行并逐行复制新列中的单元格值?
答案 0 :(得分:2)
应该很快完成这项工作:
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
答案 1 :(得分:0)
这应该做的工作:
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
您可以调整目标单元格,当然也可以调整每列的第一个复制行。