我在Excel中创建一个宏,将单元格行的编号附加到yyyymmdd格式的日期,以生成带校验和的伪条形码。第一部分使用当前日期乘以10000并添加当前行号:
Log.Write("Log before: " + url);
如果我在单元格中显式调用它并按Enter键,则该函数有效。但是,如果我在单元格A1中调用它然后向下扩展选择(使用单元格底部的黑色十字),它将保留原始行号,因此生成的所有数字都是相同的。
我如何对其进行编码,以便它不使用ActiveCell,而是使用它的实际行号?
答案 0 :(得分:3)
是的,您需要传递所需的单元格(作为范围)来检查函数的值。
因此,假设你不想将它用于Cell A1,参考Cell A1,你需要输入以下公式:
=CreateBarcode(A1)
然后,您可以将其向下拖动到A列中的其余单元格。
您可以在下面找到已通过Cell引用的已编辑代码:
Public Function CreateBarcode(cellRef As Range) As Double
Dim BCode As Double
BCode = Format(Now(), "yyyymmdd")
BCode = BCode * 10000
BCode = BCode + cellRef.Row
CreateBarcode = BCode
End Function
您可以在下面找到使用工作表结果的屏幕截图(在执行上述更改后):