0

私は VBA の初心者で、既存のマクロを変更して試行錯誤することでほとんど学んでいます。

条件に基づいて、外部ブックから自分のブックに行をプルするために、いくつかのマクロを結合/変更しました。問題は、ランダムに重複した行が与えられていることであり、その理由がわかりません。誰が問題が何であるかを見ることができますか? 私が抱えている2番目の問題は、列AF基準に加えて、列Eの日付が別のシートの2つのセルで指定された日付の間に収まるようにフィルタリングしたいということです。

私は次の行を使用しようとしています:

If DateValue.Sheets("Control")("B1") < ("E1:E" & B) < DateValue.Sheets("Control")("C1") Then

しかし、私はそれを間違って配置しているか、コーディングを完全にオフにしています...誰かが私を助けてくれますか?

Sub FetchComplaints()
Dim path            As String
Dim FileName        As String
Dim LastCell        As Range
Dim Wkb             As Workbook
Dim WS              As Worksheet
Dim ThisWB          As String

Sheets("Sheet1").Range("A2:S1000").Clear
Sheets("ComplaintsFetched").Activate
Range("A1:AP5000").Clear
ThisWB = ThisWorkbook.Name
Application.EnableEvents = False
Application.ScreenUpdating = False
path = GetFileName

        Set Wkb = Workbooks.Open(FileName:=path)
        For Each WS In Wkb.Worksheets
            WS.Select
            B = Application.CountA(Range("A:A"))
            If B = 0 Then
                            Else
                For Each cell In Range("AF1:A" & B)
                If cell.Value = True Or cell.Value = "Written" Then
                Anum =  Application.CountA(Workbooks(ThisWB).Sheets("ComplaintsFetched").Range("A:A")) + 1
                cell.EntireRow.Copy Workbooks(ThisWB).Sheets("ComplaintsFetched").Range("A" & Anum)
               End If
               Next cell
            End If
        Next WS
        Wkb.Close False
Application.EnableEvents = True
Application.ScreenUpdating = True

Set Wkb = Nothing
Set LastCell = Nothing

Set LastCell = Nothing

GetFileName は、パスを取得する関数です。

助けてくれてありがとう。非常に単純なものが欠けている場合は申し訳ありません。

4

1 に答える 1

1

次の構文を使用してみてください。

If Sheets("Control").Range("B1").Value < Sheets("Control").Range("C" & B).Value ...

を使用して複数の条件を組み合わせる必要がありますAnd

于 2013-02-14T20:13:59.130 に答える