查找最高小数并使用VBA进行四舍五入 - 版本编号

时间:2018-02-06 15:59:05

标签: excel vba excel-vba

我正在编写代码,需要查看小数列,找到最高的代码,根据最高小数设置目标单元格,然后将该小数向上舍入为最接近的整数。这是为了在主数据电子表格上自动化版本编号,即如果代码发现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

0 个答案:

没有答案