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
我想通过一个函数来格式化工作表中一些不活动的单元格。这是我当前的代码:
我这样调用函数,并用它给工作表:
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