【发布时间】:2016-07-13 15:56:31
【问题描述】:
我正在尝试从单独的工作表中获取一列,并将其仅及其唯一值复制到另一个工作表中作为列标题。现在,我的代码在 reference1 中创建唯一值并尝试将它们复制到 Sheet1 作为列标题,但由于某种原因,我的范围仅将 reference1 数据中的第一行循环(图片显示它只是不断循环 title1)到每一列表 1 中的标题。如果我在 with wsDB 语句中放置“Transpose(arrValues)”,它只会放置第一行数据,如果我在 with wsDB 语句中放置“Transpose(j)”,它只会放置 reference1 表中的实际编号列.
Sub uniqueyes()
Dim wsRef As Worksheet
Dim wsDB As Worksheet
Set wsRef = Worksheets("reference1")
Set wsDB = Worksheets("Sheet1")
With wsRef
.Range("F1:F60").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("I1"), unique:=True
Dim arrValues As Variant
arrValues = .Range("I2", .Range("I" & .Rows.Count).End(xlUp))
End With
For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
If Cells(i, 4) = "Title" Then
For j = 1 To (UBound(arrValues)) Step 1
With wsDB
.Range(.Cells(i, j * 4 + 2), .Cells(i, j * 4 + 4)).Value = Application.WorksheetFunction.Transpose(arrValues)
End With
Next j
End If
Next i
End Sub
【问题讨论】: