我正在编写代码,需要查看小数列,找到最高的代码,根据最高小数设置目标单元格,然后将该小数向上舍入为最接近的整数。这是为了在主数据电子表格上自动化版本编号,即如果代码发现0.03是存档中的最新版本,则需要将存档中的当前数据写入存档中0.04,并将主页面上的版本号设置为1(状态"草案")。
数据是通过用户表单输入的,但出于测试目的,我在代码中设置值。数据将被写入第一栏中带有版本号的表格,标题为#34;版本号和#34;列A中的SKU代码.SKU列中的值应为" test"版本号应为0.01,0.02等。代码需要在第I列中找到最高版本号,然后检查SKU是否与输入的版本号匹配(在最终版本中,所有工作表都将被锁定,因此最终用户将是无法直接在单元格中输入数据)。
我找到了a worksheet function的链接,但发现自己有编译错误,所以我不确定这个函数是否与我正在使用的方法兼容。
这是我到目前为止所做的。
Sub SetArchiveValues()
Dim FoundArchive As Boolean
Dim VersionNumber As Single
Dim dSKU As String
Dim SKUArchiveDestination As String
Dim VersionArchive As Single
Dim VersionNumberArchiveDestination As String
FoundArchive = True
VersionNumber = 1
dSKU = test
'if archive exists, set values and cell references
If FoundArchive = True Then
For Each cell3 In Worksheets("Coding and Label Archive").Columns("I").Cells.SpecialCells(xlCellTypeConstants)
'tell code to ignore header
If cell3.Value <> "Version No." Then
If VersionNumber = Int(cell3.Value) Then
'find latest version number
If cell3.Value > CurrentValue And cell.Offset(0, -8).Value = dSKU Then
SKUArchiveDestination = cell3.Offset(1, -8).Address
VersionArchive = cell3.Offset(0, 0).Value
VersionNumberArchiveDestination = cell3.Offset(1, 0).Address
CurrentValue = cell3.Value
Debug.Print "Current Value = " & CurrentValue
Debug.Print "Cell3.value =" & cell3.Value
Debug.Print "SKU Archive Destination = " & SKUArchiveDestination
Debug.Print "Version Archive Value = " & VersionArchive
Debug.Print "Version Number Archive Destination = " & VersionNumberArchiveDestination
End If
End If
End If
Next
End If
End Sub