2

最初のシートにはフィールドがあります。

Sheet01

Code | Description    | Amount |
0f15 | Description 01 | 05     |
0f04 | Description 02 | 00     |
0rt7 | 03 Description |        |
0rt7 | Description 04 | 07     |

私が必要とするのは、ユーザーが金額に 00 (1,2,3,4,5 ...) より大きい金額を入力すると、行全体が同じフィールドを含む別のワークシートに挿入されることですが、数量がゼロ (0) または空で、次のターンの別のワークシート開始行に追加されていません。

Sheet02

Code | Description    | Amount |
0f15 | Description 01 | 05     |
0rt7 | Description 04 | 07     |

例の画像

こんにちは皆さん、返信ありがとうございますが、どれも適用できませんでした。私はよりよく説明しようとします:

シート 1 の列 H にゼロ以外の値 (空白とは異なる) が入力された場合、この値を含む行全体をシート 2 の適切なセルにコピーする必要があります。非ゼロ。私はVBAの素人であるため、これが可能であることを知っています。誰かが私を助けることができれば、私はそれを感謝します.

4

1 に答える 1

0

このコードは、最初のシート _Change イベントで試すことができます。

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Column <> 3 Or Target.Value = 0 Or Target.Value = "" Then
      Exit Sub
  End If
  Dim sht1 As Worksheet
  Dim sht2 As Worksheet
  Set sht1 = ActiveSheet
  Set sht2 = ThisWorkbook.Sheets("Sheet2")
  Target.EntireRow.Copy
  Dim iRow As Integer
  Dim rng As Range
  Application.ScreenUpdating = False
  sht2.Activate
  iRow = sht2.Range("A" & sht2.Rows.Count).End(xlUp).Row + 1
  Set rng = sht2.Range("A" & iRow)
  rng.Select
  sht2.Paste
  sht1.Activate
  Application.CutCopyMode = False
  Application.ScreenUpdating = True
End Sub
于 2013-03-09T16:20:42.673 に答える