2016-06-01 8 views
1

更新ボタンは、ターゲットセルの横のセルに値がある場合に機能します。 はこのコードで問題を検出できません。Excel VBAユーザーフォームの更新ボタン

Private Sub CommandButton3_Click() 
Dim irow As Long, _ 
wS As Worksheet, _ 
NextRow As Long, _ 
cF As Range 
Set wS = Worksheets("stock") 
With wS 
    With .Range("A:A") 

     Set cF = .Find(What:=Me.ComboBox2.value, _ 
       After:=.Cells(1, 1), _ 
       LookIn:=xlValues, _ 
       LookAt:=xlWhole, _ 
       SearchOrder:=xlByRows, _ 
       SearchDirection:=xlNext, _ 
       MatchCase:=False, _ 
       SearchFormat:=False) 
    End With 

If Not cF Is Nothing Then 
    If cF.Offset(0, 1) <> vbNullString Then 
     Set cF = cF.End(xlToRight).Offset(0, 25) 
     cF.value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
    End If 
Else 
    .Cells(cF.row, "AA").value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
End If 

エンド End Subの

により標的細胞がAA2であるならば、Z2またはB2の値があるはずそれ以外の場合は何も起こりません。

だけ追加ELSE文ではなく、私がやった

form

+0

の作品専門家ではありませんが、IFコードであなたの条件や何かをすると思います –

+0

2つの 'with'がありますが、' end with'ステートメントが1つしかありません –

+0

ターゲットセルの隣のセルが空白の場合、 cF.Offs et(0、1)<> vbNullString Then'を実行すると、 'Else'文を追加するか、その条件を削除する必要があります。 – tigeravatar

答えて

0

ないAAの列AB内の他のその更新値を持つことだけでヒットしたn個のトライアルに基づいて、それは私が

`Private Sub CommandButton3_Click() 
    Dim irow As Long, _ 
    wS As Worksheet, _ 
    NextRow As Long, _ 
    cF As Range 
    Set wS = Worksheets("stock") 
    With wS 
    With .Range("A:A") 

    Set cF = .Find(What:=Me.ComboBox2.value, _ 
      After:=.Cells(1, 1), _ 
      LookIn:=xlValues, _ 
      LookAt:=xlWhole, _ 
      SearchOrder:=xlByRows, _ 
      SearchDirection:=xlNext, _ 
      MatchCase:=False, _ 
      SearchFormat:=False) 

.Cells(cF.row, "AA").value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
End With 
End Sub` 
+1

まで働いていますありがとう –

関連する問題