我在这里有一些代码可行,但我有一些麻烦让它连续多次工作。它的作用是用另一张表中的公式填充第一个空列。
Dim source As Worksheet
Dim destination As Worksheet
Dim EmptyColumn As Long
Dim LastRow As Long
Set source = Sheets("vlookup")
Set destination = Sheets("COMMIT")
LastColumn = destination.Cells(1,destination.Columns.Count).End(xlToLeft).Column
LastRow = Worksheets("COMMIT").Range("A:A").Rows.Count
If IsEmpty(destination.Range("A2")) = False Then
EmptyColumn = LastColumn + 1
destination.Cells(3, EmptyColumn).Formula = "=INDEX(PORT!$S$5:$S$4000,MATCH(COMMIT!$G3,PORT!$G$5:$G$4000,0))"
LastRow = ActiveSheet.UsedRange.Rows.Count
Range("AL3").AutoFill destination:=Range("AL3:AL" & LastRow) **'This is where I'm having issues'**
End If
我希望继续将索引公式放入下一个空列,但我只知道如何将它放入我设置的范围中,并且当我再次运行此宏时不会移动到下一列。 / p>
关于如何实现这一目标的任何想法?
感谢斯科特帮助我解决这个问题!
现在我的代码中出现了另一个问题。
Set cellSource = Worksheets("COMMIT").Range(Cells(1, LastColumn).Address)
Set cellTarget = Worksheets("COMMIT").Range(Cells(1, LastColumn), Cells(1, EmptyColumn))
If detntn.Range("A2") <> "" Then
cellSource.AutoFill destination:=cellTarget, Type:=xlFillDefault
End If
现在我正试图从&#34;提交&#34;复制公式。工作表并将其粘贴到第一个空列的第一个单元格中。由于某种原因,此代码无效。想知道是否有人可以嗅出原因。在此先感谢您的帮助!
答案 0 :(得分:1)
部分问题是您为变量使用了保留字。查看自动填充功能,它使用目的地。
然后我们可以使用Cells()
代替Range
来引用最后一列。
Dim source As Worksheet
Dim detntn As Worksheet
Dim EmptyColumn As Long
Dim LastRow As Long
Set source = Sheets("vlookup")
Set detntn = Sheets("COMMIT")
LastColumn = detntn.Cells(1, detntn.Columns.Count).End(xlToLeft).Column
LastRow = Worksheets("COMMIT").Range("A:A").Rows.Count
If detntn.Range("A2")<>"" Then
EmptyColumn = LastColumn + 1
detntn.Cells(3, EmptyColumn).Formula = "=INDEX(PORT!$S$5:$S$4000,MATCH(COMMIT!$G3,PORT!$G$5:$G$4000,0))"
LastRow = ActiveSheet.UsedRange.Rows.Count
detntn.Cells(3, EmptyColumn).AutoFill destination:=detntn.Range(detntn.Cells(3, EmptyColumn), detntn.Cells(LastRow, EmptyColumn))
End If