快捷 VBA 语法

快捷 VBA 语法

我需要通过添加以下 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  

在此处输入图片描述

相关内容