-1

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

我要创建的是一个按钮,按下时:

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

从 (i, 16) 到 F67:F110 的单元格

根据第 10 行是否包含“低”或“高”,将三个单元格从集合 N106:N109 移动到单元格 (i12:i14) [其中 i 是列引用)。

代码的 Range 部分是完成此操作的,它们工作正常,我遇到的问题是我的 Do.Until 行和参考 Column(i)

有谁知道这如何工作?谢谢

更新 因此,多亏了 Siddharth 的帮助,我已经能够修复除一位之外的所有内容,即 Range 函数中存在字符串的行。我在这里不使用 .Formula 而是使用 Paste 的原因是,否则所有单元格 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

结束子

4

1 回答 1

0

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

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

尝试改用这个:

Cells(12, i).PasteSpecial Paste:=xlPasteValues
于 2013-09-17T11:52:38.323 回答