我上的问题与循环工作通过一定数目的列和阵列式中粘贴。对于每一个新列,我都必须更改公式以反映该列地址。但是,当我尝试运行它时,我一直得到1004(范围类失败的选择方法)错误。以下是我已经写了:遍历列和粘贴的阵列式
Sub Testlee()
Dim i As Integer
Dim LastColumn As Long
Dim rng As Range
Dim colStr As String
LastColumn = 10
For i = 1 To LastColumn
colStr = Replace(Split(Columns(i).Address, ":")(0), "$", "")
ThisWorkbook.Sheets("Data Validation").Range(colStr & "2:" & colStr & "500").Select
Selection.FormulaArray = "=IF(LEN(Agent1!" & colStr & "2:" & colStr & "500) + LEN(Agent2!" & colStr & "2:" & colStr & "500) = 0,"""",(IF(Agent1!" & colStr & "2:" & colStr & "500=Agent2!" & colStr & "2:" & colStr & "500, ""YES"", Agent1!" & colStr & "2:" & colStr & "500&""||""&Agent2!" & colStr & "2:" & colStr & "500)))"
Next i
End Sub
任何帮助,将不胜感激:)
更新:我能得到它的工作使用两种方法的结合。以下是可用的代码:
For i = 1 To LastColumn
colStr = Replace(Split(Columns(i).Address, ":")(0), "$", "")
With ThisWorkbook.Sheets("Data Validation").Range("A2:A500")
ThisWorkbook.Sheets("Data Validation").Range(colStr & "2:" & colStr & "500").FormulaArray = "=IF(LEN(Agent1!RC:R[498]C)+LEN(Agent2!RC:R[498]C) = 0,"""",(IF(Agent1!RC:R[498]C=Agent2!RC:R[498]C, ""YES"", Agent1!RC:R[498]C&""||""&Agent2!RC:R[498]C)))"
End With
Next i
感谢大家的帮助!
你用R1C1参考风格? – psychicebola
您只能在活动工作表中选择单元格。你不需要选择在所有[链接](http://stackoverflow.com/questions/10714251) – BrakNicku
BrakNicku嗨,我试着不使用选择,只是这样做有它的表(范围).FormulaArray =“公式”但它也没有效果。 – NLourme