复制范围,偏移粘贴整个文件VBA
简单来说,数据如下所示:
ID | Value | Test | Score | 1 | 30 | a | b | 1 | 40 | c | d | 2 | 30 | d | a | 2 | 40 | e | c |
… 130,000行。 值总是30或40,我想replace40,testing和分数,并把它放在30行看起来像这样。
ID | Value | Test | Score | | | | 1 | 30 | a | b | 40 | c | d | 2 | 30 | d | a | 40 | e | c |
我似乎无法绕过价值的抵消粘贴我的头。 我用Select.Copy等尝试过,而且由于性能问题,我只读了一些有关去路由的坏消息。 任何帮助将是欣赏!
谢谢,丹
编辑:更新 – 所以我得到它的工作,但它只会通过40行之前,我收到溢出错误 。 我知道这并不是最优化的,或者说是最好的办法,但是这是我唯一可以解决的问题。 任何投入都非常感激。
我发现有几个实例只有一个ID,因此我正在检查是否有两个ID,如果是 – 复制/粘贴,否则继续到下一行。
Sub Macro4() ' Macro4 Macro Application.ScreenUpdating = False Range("H6:K6").Select Application.CutCopyMode = False Selection.Copy Range("L5").Select ActiveSheet.Paste Dim r As Integer, ID As Integer, validation As Integer r = 5 While r < 400 Range("V1:X1").Select Selection.ClearContents Range("V1").Select ID = Cells(r, 1).Value Selection.Value = ID Range("W1").Select ActiveCell.FormulaR1C1 = "=countifs(C[-22],RC[-1])" validation = Selection.Value If validation > 1 Then Cells(r + 1, 8).Select Range(Selection, Cells(r + 1, 11)).Select Selection.Copy Cells(r, 12).Select ActiveSheet.Paste r = r + 2 End If If validation = 1 Then r = r + 1 End If Wend Application.ScreenUpdating = True End Sub
假设ID
是A1,公式应该这样做:
在E2 40
在F2 = C3
在G2 = D3
向下复制(确保40
不自动增量),在顶部selectF:G,select性粘贴,值…,在ColumnB中select40
并删除选定的行。
我通过改变它来工作:
Dim r As Integer, ID As Integer, validation As Integer
至:
Dim r As Integer, ID as Double, validation As Integer
我读了一个地方,双重持有显着更大的价值 – 欣赏所有的帮助,无论!