比较单元格中的值到数组,然后如果真则添加值

时间:2018-11-14 22:53:34

标签: excel vba

我对VBA还是有点陌生​​,并且一直致力于制作自己的宏以及所有宏。但是我有一些代码问题。

我有一个日志,其中记录了供应商信息,在工作表上,我下面的这段代码可以搜索通过数字输入在其中输入的值,然后它检查名称是否与另一个名称关联包含名称表的工作表。

下面的代码在大多数情况下都可以正常工作,但是,我很难让它同时搜索输入的值是否已经输入了它的上方或下方。就目前而言,输入数字时,它会拉出名称,然后在包含名称列表的工作表上通过找到的结果将1的值添加到对应的单元格中。

我想要达到的最终结果是让它检查当前工作表上是否存在该名称(不是具有名称列表的工作表),如果存在,则不会将值添加为1。包含我所有的姓名和电话号码的表格。

我尝试使用循环,但未能成功使用它。任何帮助将不胜感激!

If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("B6:B37", "B46:B77")) Is Nothing Then

If WorksheetFunction.IsNumber(Target.Value) Then

   Application.EnableEvents = False

   Vendor = Sheet8.Range("A2:B500")
   Target.Value = Application.VLookup(Target.Value, Vendor, 2, False)

   Application.EnableEvents = True

   Set StartValue = ThisWorkbook.Sheets("Vendor List").Range("A:B").Find(What:=Target.Value, LookIn:=xlValues)
   cPos = StartValue.Address

   Set ThisValue = ThisWorkbook.Sheets("Wednesday").Range("B6:B77").Find(What:=Target.Value, _
            After:=Target.Value, _
            LookIn:=xlValues, _
            LookAt:=xlPart, _
            SearchDirection:=xlNext, _
            MatchCase:=True, _
            SearchFormat:=False)

   ThisWorkbook.Sheets("Vendor List").Range(cPos).Offset(0, 8).Value = ThisWorkbook.Sheets("Vendor List").Range(cPos).Offset(0, 8).Value + 1

End If

If IsError(Target.Value) Then

    Target.Value = ""
    MsgBox "The Vendor number entered is not listed. Either you have entered an invalid number, or you have not yet added this vendor to the Vendor List sheet.", vbCritical
    ThisWorkbook.Sheets("Vendor List").Range(cPos).Offset(0, 8).Value = ThisWorkbook.Sheets("Vendor List").Range(cPos).Offset(0, 8).Value - 1

End If

End If

我已附上一张其工作方式的图片。希望它可以清除一点...

Example

1 个答案:

答案 0 :(得分:0)

未经测试:

dataframe = DynamicFrame.toDF(applymapping3).repartition(2) #where 2 is the number of files/partitions.
dynamicframe = DynamicFrame.fromDF(dataframe, glueContext, "dynamicframe")