Excel VBA – 不使用相同公式自动填充整个表格列的代码

我正在使用一个表格对象,我需要通过第3列进行sorting的代码,并更改date(mmm-d)正在读取“Jan-0”的任何事件。 因为我正在使用一个表格对象,每次我尝试引用列“时钟输出”(E),格式如下:

m / d / yyy hh:mm:ss AM / PM,

使用.formulaR1C1代码段,将第3列中的每个单元格更改为该公式。 这是一个问题,因为我想列C(date)由列D(时钟input)的值确定,或者,如果列D是空的,那么我希望它填充列E值(时钟输出)。

不存在列D和列E都是空的事件。

currentSht.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(erow, ecol)), , xlYes).Name = "Table1" Set lst = currentSht.ListObjects("Table1") lst.ListColumns.Add Position:=3 currentSht.Range("C2").Value = "=TEXT([@[Entry Time]],""mmm-d"")" lstHeaders = Array("", "ID", "Agent Name", "Date", "Clock In", "Clock Out") For i = 1 To 5 lst.ListColumns(i).Name = lstHeaders(i) Next i ***Concerning portion of code*** For i = erow to 1 step -1 if cells(i,3).TEXT = "Jan-0" Then cells(i,3).Value = "=([@[Clock Out]],""mmm-d"")" end if next i End Sub 

我知道了,这个窍门是:

 For i = erow To 1 Step -1 If Cells(i, 3).Text = "Jan-0" Then Application.AutoCorrect.AutoFillFormulasInLists = False '<~~ THIS LINE DID IT Cells(i, 3).Value = "=TEXT([@[Clock Out]],""mmm-d"")" End If Next i