VBA连接区域中同一工作表中的列



我在将两列(变量范围)连接到同一文档中的另一列时遇到问题。有什么东西真的很明显我遗漏了吗?

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知识有限

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

End Sub

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

我想这就是您想要的:

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

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

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

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

也许使用Excel数组函数?

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

最新更新