0

我无法将两列(可变范围)连接到同一文档中的另一列。有什么很明显的我想念的吗?

Function ConcCol(ConVal_1 As String, ConVal_2 As String)
    Range("V30:V500").Select
    Application.CutCopyMode = False

    With ActiveCell
        .FormulaR1C1 = "=CONCATENATE(RC[5],"" "",RC[6])"
    End With

    Selection.AutoFill Destination:=Range(Destination), Type:=xlFillDefault

End Function

运行上述函数时,出现以下错误:

错误:运行时错误“1004”:Range 类的 AutoFill 方法失败

我认为这可能与只有一个细胞被激活有关?我的 VBA 知识有限

4

3 回答 3

0

嘿,我觉得你有点困惑。你打算如何运行这段代码?您需要提供更多详细信息。以下是运行 vba 代码的三种方式:

  • 作为用户定义函数 (UDF) 的用户界面
  • 作为另一个 VBA 代码调用/使用的函数
  • 作为一个宏,用户需要从宏列表中运行它

出于您的目的,为什么用户不在工作表中使用CONCATENANTE 函数并填写?

也许使用 Excel 数组函数?

我不能发布图片,需要 10 个声誉:s

于 2013-08-13T20:44:10.453 回答
0
Sub ConcCol()

Range("V3:V500").Select
For Each Cell In Selection
Cell.Value = "=CONCATENATE(RC[5],"" "",RC[6])"
Next Cell


End Sub

我认为只使用每个单元格会更容易(如果您采用选择的想法)。我认为您的 with 语句根本不想循环,因此会出错。这有效,一个简单的解决方案。

于 2013-08-13T15:24:45.857 回答
0

我想这就是你要找的:

Sub tgr()

    With Intersect(ActiveSheet.UsedRange.EntireRow, Range("V30:V" & Rows.Count))
        .Formula = "=AA" & .Row & "&"" ""&AB" & .Row
    End With

End Sub
于 2013-08-13T15:26:12.327 回答