版本检查VBA(excel)代码(redhat)

在这里输入图像说明

在这里,我将使用的东西的例子。

在左边是它将使用NAME BASE REVISE来检查软件包版本的补丁。

你可以把脚本转换成VBA代码。 我会研究它,并融入我的实际工作:

 if (Patch name = Pack name) then **** searching for same Name on patch column to reference for patch base and revise number if (base(c column) > base(h column)) ***checknumber[cellbycell] display "yes" in J cell or if (base(C column) = base(h column)) then check if revise(D column) > revise(I column) display "yes" in J cell else display No 

所以,如果你能给我示例代码; 如果你有时间,请向我解释每行代码是什么意思。

你不需要这个vba

 =IF($A2=$G2,IF($C2>$H2,"Yes",IF($C2=$H2,IF($D2>$I2,"Yes","No"),"No")),"No") 

这在J栏

像这样的东西应该工作:

 Option Explicit Sub variousconditions() Dim i As Integer, x As Integer x = 0 For i = 2 To 10 With Excel.ThisWorkbook.ActiveSheet If .Cells(i, 1) = .Cells(i, 7) Then '****searching for same Name on patch Select Case .Cells(i, 3) '***checknumber[cellbycell] Case Is > .Cells(i, 8) .Cells(i, 10) = "yes" Case Is = .Cells(i, 8) If .Cells(i, 4) > .Cells(i, 9) Then .Cells(i, 10) = "yes" End If End Select End If End With Next i End Sub 

我必须重新迭代Siddharth的参考,因为这将告诉你在哪里你需要保存这个代码等: http : //msdn.microsoft.com/en-us/library/office/ee814737%28v=office.14%29的.aspx

下面是一个函数,用于比较两个点号版本号,您需要在VBA编辑器中将其粘贴到新模块中。

 Option Explicit Public Function VersionCompare(CurrentVersion As Range, _ TargetVersion As Range) Dim result As Integer result = CompareDotStrings(CurrentVersion.Cells(1, 1).Value, _ TargetVersion.Cells(1, 1).Value) If result = 1 Then VersionCompare = True Else VersionCompare = False End If End Function Private Function CompareDotStrings(LeftValue As String, _ RightValue As String) _ As Integer Dim CompareLeft() As String, CompareRight() As String, CompareLength As Integer CompareLeft = Split(LeftValue, ".") CompareRight = Split(RightValue, ".") CompareLength = UBound(CompareLeft) If UBound(CompareRight) < CompareLength Then CompareLength = UBound(CompareRight) Dim ElementLeft As Integer, ElementRight As Integer, Comparison As Integer Dim ElementNumber As Integer For ElementNumber = 0 To CompareLength ElementLeft = CInt(CompareLeft(ElementNumber)) ElementRight = CInt(CompareRight(ElementNumber)) Comparison = ElementRight - ElementLeft If Comparison <> 0 Then CompareDotStrings = Sgn(Comparison) Exit Function End If Next ElementNumber CompareDotStrings = 0 End Function 

有了这个,你可以使用=VersionCompare(H2, C2)来比较两个版本号,其他所有你想做的事情(比如拆分虚线版本)可以用工作表中的公式来完成。