使用.find查看两个值

时间:2015-11-27 16:55:02

标签: vba

我正在处理银行对帐工作表,美国运通每天都会收取信用卡手续费。在我们的工作表上,我们假设每天的成本为3.1%,因此如果AX的总收入为100美元,那么我们预期为96.9美元。存入的实际金额将与该金额不同,但几乎不超过1%。我试图创建一个代码,该代码将寻找96.9 * 1.01&之间的值。 96.9& 99.这是我到目前为止所做的。我在.find中放入了一个错误(what:> findstring3&

Sub CreditCardRec()

For i = 1 To 200

Windows("4110 Bank Rec 112100.xlsm").Activate
            findstring = Sheets("button").Cells(i, 30).Value
                If Trim(findstring) <> "" Then
                    findstring2 = findstring * 1.01
                    findstring3 = findstring * 0.99
                    With Sheets("Amex").Range("N:N")
                        Set rng = .Find(what:>findstring3 & <findstring2, _
                            LookIn:=xlValues, _
                            lookat:=xlWhole, _
                            searchorder:=xlByRows, _
                            searchdirection:=xlNext, _
                            MatchCase:=False)
                        If Not rng Is Nothing Then
                            Application.Goto rng, True
                            ActiveCell.Offset(0, 1).Select
                            ActiveCell.Value = findstring
                        End If
                    End With
                End If

            Next i

2 个答案:

答案 0 :(得分:0)

我希望你能找到的是:

CODE:

Sub test()

For i = 1 To 200

Windows("4110 Bank Rec 112100.xlsm").Activate
            findstring = Sheets("button").Cells(i, 30).Value

    If Trim(findstring) <> "" Then
        findstring2 = findstring * 1.01
        findstring3 = findstring * 0.99

        With Sheets("Amex")

            Set Rng = Sheets("Amex").Range("N" & i)

                            If Rng > findstring3 And Rng < findstring2 Then
                                Application.Goto Rng, True
                                ActiveCell.Offset(0, 1).Select
                                ActiveCell.Value = findstring
                            End If

            End With

    End If

Next i

  End Sub

答案 1 :(得分:0)

感谢您的帮助,我最终将其更改为以下代码,似乎完美无缺。视窗(文件2).Activate                 findstring = Sheets(“button”)。Cells(i,30).Value                     如果修剪(findstring)&lt;&gt; ““ 然后                         对于j = 12到49                         findstring2 = findstring * 1.01                         findstring3 = findstring * 0.99                         findstring4 = Sheets(“Amex”)。Cells(j,16).Value                         findstring5 = Sheets(“Amex”)。Cells(j + 1,16).Value                         findstring6 = Sheets(“Amex”)。Cells(j + 2,16).Value                         findstring7 = Sheets(“Amex”)。Cells(j,16).Value + Sheets(“Amex”)。Cells(j + 1,16).Value                         findstring8 = Sheets(“Amex”)。Cells(j,16).Value + Sheets(“Amex”)。Cells(j + 1,16).Value + Sheets(“Amex”)。Cells(j + 2,16) )。值                             如果findstring4&gt; 100然后                                 如果findstring4&lt; findstring2和findstring4&gt; findstring3然后                                     表格(“Amex”)。单元格(j,15).Value = findstring                                     退出                                 万一                                 如果findstring5&lt;&gt; “”和findstring5&gt; 100然后                                     如果findstring7&lt; findstring2和findstring7&gt; findstring3然后                                         表格(“Amex”)。单元格(j,15).Value = findstring                                         退出                                     万一                                     如果findstring6&lt;&gt; “”和findstring6&gt; 100然后                                         如果findstring8&lt; findstring2和findstring8&gt; findstring3然后                                             表格(“Amex”)。单元格(j,15).Value = findstring                                             退出                                         万一                                     万一                                 结束如果

                        End If

                    Next j
                End If

            Next i