簡體   English   中英

在VBA宏中使用WORKDAY

[英]Using WORKDAY in a VBA macro

我正在嘗試在VBA宏中使用WORKDAY函數,該宏將自動填充列。 我環顧四周並嘗試了幾種變體,但結果卻不盡相同,但都沒有完全滿足我的需求。

我需要代碼來確定單元格(第I列)是否為空,如果是,則根據單元格(第H列)中的日期確定上一個工作日。 到目前為止,我的代碼是:

Dim rng As range

Set rng = range("I3", Cells(Rows.Count, "I").End(xlUp))

For Each cell In rng
'
    If cell.Value = "" Then
        cell.Value = "=WORKDAY(""H3"",-1)"
    End If
    Next
End Sub

謝謝您的幫助!

為了將來參考,宏記錄器真的很擅長為您提供此類代碼。 您可能想要類似的東西:

Dim rng As range

Set rng = range("I3", Cells(Rows.Count, "I").End(xlUp))

rng.cells(1,1).Formula = "=IF(H3="""","""",WORKDAY(H3,-1))"
rng.cells(1,1).AutoFill Destination:=Range("J2:J6"), Type:=xlFillDefault

就像將公式(在常規Excel中)向下拖動到rng中的所有單元格一樣

您可以將cell.Value = "=WORKDAY(""H3"",-1)"更改為cell.Formula= "=WORKDAY(""H3"",-1)"

或使用: cell.Value = WorksheetFunction.WorkDay(Range("H3").Value, -1)

如果只需要該值而不需要單元格中的公式,則可以改用:

cell.Value = Application.WorksheetFunction.Workday(Range("H3"),-1)

...並遍歷需要將值放入其中的單元格。

如果需要公式:

cell.Formula = "=WORKDAY(""H3"",-1)"

...然后再次遍歷您需要的單元格。

這些是假設您的函數按原樣在工作表上正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM