1

しばらくの間、これを機能させる方法を見つけようとしていたので、皆さんに試してもらいます!

Sheet1 の列 AQ と行 1-5000 のファクトのリストがあります。

列 E には、リストを下っていくにつれてさまざまな単語を書きます。言葉は「はい」または「いいえ」になるとだけ言っておきましょう。

「はい」という単語を含むすべての行を Sheet2 にコピーするマクロが必要です。

うまくいく方法を見つけましたが、問題は、これが常にシート 2 の行 2 にコピーされることです。たとえば、Sheet2 の情報の一部を変更し、1 週間後に再びマクロを使用するとします。これにより、マクロは行った変更を上書きします。

ここで何を言おうとしているのか理解できるかどうかわかりませんが、そう願っています!.

行をコピーして貼り付けるのではなく、行を移動するマクロが必要です。これにより、シート 1 の行数が少なくなり、シート 2 のリストを下に移動するときに情報を変更できます。

私が求めているものが得られることを願っています。

以下は、現在使用しているマクロです。

   Sub Makro2()

 Dim LSearchRow As Long
 Dim LCopyToRow As Long
 Dim wksInput As Worksheet
 Dim wksOutput As Worksheet

 On Error GoTo Err_Execute

 Set wksOutput = Sheets("Sheet2")

 Set wksInput = ThisWorkbook.Worksheets("Sheet1")

 LCopyToRow = 2
 For LSearchRow = 2 To wksInput.UsedRange.Rows.Count
     If wksInput.Cells(LSearchRow, 2) = "TEST" Then
         wksInput.Rows(LSearchRow).Copy wksOutput.Cells(LCopyToRow, 1)
         LCopyToRow = LCopyToRow + 1
     End If
 Next LSearchRow

 With wksInput
     .Activate
     .Range("A3").Select
 End With

 Exit Sub
 Err_Execute:
     MsgBox "An error occurred. Number: " & Err.Number & " Description: " &  Err.Description
 End sub
4

1 に答える 1

0

交換:

LCopyToRow=2

と:

With wksOutput.UsedRange
    LCopyToRow = .Rows.Count + .Row
End With
于 2013-09-14T14:52:29.237 に答える