我是VBA的新手并尝试找到现有的解决方案,但没有人完全满足我的要求:
我的初始列表有空洞(空白),我需要将结果列为转置而没有这些空白字段
列A包含文件#,然后是5列价格,但有些只有一个价格,其他2个其他3等但从不超过3个价格。这些数字从一个月到另一个月不等,有数百行。
我的第一次试验没有成功,因为我找不到预期的总数。 我的初始代码如下,但它没有捕获最后2列,因为中间有空白字段:
Dim LR As Long, Rw As Long, Col As Long, LastCol As Long, CurRw As Long
Application.ScreenUpdating = False
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("B:B").Insert xlShiftToRight
For Rw = LR To 2 Step -1
If Range("D" & Rw) <> "" Then
LastCol = Cells(Rw, Columns.Count).End(xlToLeft).Column
Rows(Rw + 1).Resize(LastCol - 3).Insert xlShiftDown
Range("A" & Rw).Resize(LastCol - 2) = Range("A" & Rw)
Range("B" & Rw).Resize(LastCol - 2).Value = Range("C" & Rw).Resize(LastCol + 5).Value
Range("C" & Rw).Resize(1, LastCol - 2).Copy
Range("B" & Rw).Resize(LastCol - 2).PasteSpecial xlPasteAll, Transpose:=True
Range("C1").Resize(1, LastCol - 2).Copy
Range("C" & Rw).PasteSpecial xlPasteAll, Transpose:=True
Else
Range("C" & Rw).Copy Range("B" & Rw)
Range("C1").Copy Range("C" & Rw)
End If
Next Rw"
感谢您的帮助。希望现在更容易理解和帮助; - )
答案 0 :(得分:0)
将您的图像与A1中的文件一起使用,将沿着这些行
Sub Example()
Range("b2").Resize(1, 10).SpecialCells(xlCellTypeConstants, xlNumbers).Copy
Range("m2").Value = Range("b2").Resize(1, 10).SpecialCells(xlCellTypeConstants, xlNumbers).Count
Range("n2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=True
End Sub
计数将在M中并且在N中转置
答案 1 :(得分:0)