Excel VBA 非活动工作表范围

Excel VBA inactive worksheet Range

我想通过一个函数来格式化工作表中一些不活动的单元格。这是我当前的代码:

我这样调用函数,并用它给工作表:

i = DesignWorksheet(ws)

函数目前看起来是这样的:

Function DesignWorksheet(ws As Worksheet)
 ws.Range(Cells(rowCurrent, 2), Cells(rowCurrent, 4)).Borders(xlEdgeBottom).Weight = xlThick
End Function

这会导致错误消息:

Run-time error '1004': Method 'Range' of object '_Worksheet' failed

现在我尝试删除关键字 'Range' 并且成功了。但是现在我一次只能格式化一个单元格:

Function DesignWorksheet(ws As Worksheet)
 ws.Cells(rowCurrent, 2).Borders(xlEdgeBottom).Weight = xlThick
End Function

为什么它适用于 'ws.Cells()' 但不适用于 'ws.Range(Cells(),Cells())'? 如果工作表处于活动状态,则两种变体都有效,但如果另一个工作表处于活动状态,则只有变体 2 有效

我相信您还需要 ws 对每个单元格的引用

Function DesignWorksheet(ws As Worksheet)
    ws.Range(ws.Cells(rowCurrent, 2), ws.Cells(rowCurrent, 4)).Borders(xlEdgeBottom).Weight = xlThick
End Function