在excel vba中的列之间移动Do Until函数

时间:2013-09-16 17:19:58

标签: vba excel-vba excel

我对VBA很陌生,并且无法创建用于移动数字块的快速宏。

我想要创建的是按下按钮时的按钮:

将(i,5)的内容移动到E63

从(i,16)到F67的细胞:F110

取决于第10行是否包含“低”或“高”从组中移动三个单元格 N106:N109到单元格(i12:i14)[其中i是列参考)。

代码的Range部分是完成此任务并且它们正常工作,我遇到的问题是我的Do.Until行和引用Column(i)

有谁知道这有用吗?感谢

更新 所以,多亏了Siddharth的帮助,我已经能够解决所有问题,即Range函数中有一个字符串的行。我不在这里使用.Formula而是粘贴的原因是否则所有单元格A12:A14到Z12:Z14将等于相同的不正确的东西。在其他部分无关紧要。我在这些行上遇到类型13不匹配错误。

Sub Columntest()
Dim i As Integer
    i = 5
    Do Until Cells(5, i).Value = ""
        If Cells(10, i).Value = "Low" Then
                   Range("E63").Formula = Cells(5, i)
                   Range("F67:F110").Formula = Cells(16, i)
                   Range("O106:O108").Copy
                   Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues
        End If
        If Cells(10, i).Value = "High" Then
                   Range("E63").Formula = Cells(5, i)
                   Range("F67:F110").Formula = Cells(16, i)
                   Range("N106:N108").Copy
                   Range(Columns(i) & "12").PasteSpecial Paste:=xlPasteValues
        End If
    i = i + 1
    Loop

End Sub

1 个答案:

答案 0 :(得分:0)

类型不匹配是因为您尝试连接范围引用中的列对象和字符串:

Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues

请尝试使用此代码:

Cells(12, i).PasteSpecial Paste:=xlPasteValues