我需要通过添加以下 VBA 语法来解决此任务:
在 AI 列中输入 1 到 7 之间的随机数。在 BI 列中,需要为等于 1 的行插入“一天”,为 2 至 7 的行插入“几天”。
笔记:我知道添加一个简单的 IF 公式会容易得多,但我的想法是为这个公式创建一个 VBA 宏。然而,我不太确定语法应该是什么样子。
答案1
也许这会有所帮助。
如果需要,您可以直接在工作表上使用函数作为公式 -=DayOrDays(A2)
或者您可以使用对定义范围内的每个单元格调用该函数的过程,并将结果放置在右侧一个单元格处(OFFSET(,1)
)。
Public Sub AddToSheet()
Dim TargetRng As Range
Set TargetRng = ThisWorkbook.Worksheets("Sheet1").Range("A2:A19")
Dim Cell As Range
For Each Cell In TargetRng
Cell.Offset(, 1) = DayOrDays(Cell) 'Offset(,1) is one cell to the right of Target.
Next Cell
End Sub
Public Function DayOrDays(Target As Range) As Variant
Dim Cell As Range
If Target.Cells.Count = 1 Then
If IsNumeric(Target) Then
If Target = 1 Then DayOrDays = "a day" Else DayOrDays = "several days"
Else
DayOrDays = CVErr(xlErrValue) 'Value isn't a number.
End If
Else
DayOrDays = CVErr(xlErrRef) 'Reference is more than one cell.
End If
End Function