【发布时间】:2018-04-26 20:18:12
【问题描述】:
代码审查人员正在帮助优化我的代码,并说我应该使用以下代码以避免重复代码。我不确定如何正确使用它...据我所知,当我希望代码运行时,我必须输入 ConvertToNumeric 但我不确定如何更改变量,例如要查找的工作表或列最后一个单元格。不过这个概念对我来说很有意义。
Private Sub ConvertToNumeric(ByVal sheetToUse As Worksheet, ByVal columnToFindLastCellOn As String)
Dim helperCell As Range
Set helperCell = sheetToUse.Range("AK1")
helperCell.Value = "1"
helperCell.Copy
Dim lastCell As Range
Set lastCell = sheetToUse.Cells(Rows.Count, columnToFindLastCellOn).End(xlUp)
Dim modifyRange As Range
Set modifyRange = sheetToUse.Range(lastCell, lastCell.End(xlUp))
modifyRange.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
helperCell.ClearContents
End Sub
【问题讨论】:
-
我认为您需要更好地了解何时以及如何使用
ByRef和ByVal。有manygoodexplanations的用途。 -
你在哪里说你不明白如何使用 sub?例如
ConvertToNumeric(wsh,colNum),其中wsh是带有工作表对象的变量,colNum是带有列号(?) 的字符串。 -
您在 CR 得到的答案确实包括对
ConvertToNumeric的调用。如果需要,请随时对该答案发表评论,以获得作者的澄清。 -
@MathieuGuindon 不幸的是,CR 说我需要 50 个代表来评论任何事情,所以我无法回应