2016-11-07 11 views
0

私はこのフォーラムとネットで多くを検索しましたが、私の答えは解決できませんでした。vb.netを使用してExcelで数式を入力

私が作成したVisual Studio(2013)フォームを使用してExcelに式を入力する必要があります。私は必要なコマンドを入力しましたが、間違った行が表示されます。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    xlWorkBook = xlApp.Workbooks.Open("C:\Users\Desktop\14.xlsx") 
    'xlApp.Visible = True 
    xlWorkSheet = xlWorkBook.Sheets("Sheet1") 

    'xlWorkSheet.Unprotect() 
    Dim iRow As Long 
    iRow = 5 'have lots of headers so finally empty row starts on 5th 
    With xlWorkSheet 
     Do While .Cells(iRow, 2).value <> "" 
      .Cells(iRow, 2).activate() 
      iRow = iRow + 1 
     Loop 
     .Cells(iRow, 2).Value = t1.Text 
     .Cells(iRow, 3).Value = t2.Text 
     .Cells(iRow, 5).Value = t4.Text 

     .Cells(iRow, "AB").FormulaR1C1 = "=IF(R[" & iRow & "]C22<R[" & iRow & "]C27,""Yes"",""No"")" 

    End With 

が正しい行(irow値)に代わり 『<「はV10を示している(5それぞれ挿入してインクリメントされる)<』 AA10をAA5をV5' を示すの式に入ります。どうして? 整数変数を定義し、iRowの値を2で除算しようとしましたが、それでも正しく機能していません。

助けてください!

+0

なぜ '.Cells(iRow、2).Activate'を持っていますか?それはあなたのルーチンでは何もしませんが、何かすることを期待していると思いますか? – BruceWayne

+0

それは何もしません。私はそれを削除した – user5538704

答えて

0

私は私の問題を解決しました。問題は相対的なアドレッシングの問題でした。だから、式でiRowを使う代わりに、0に設定した変数を使用しました。

関連する問題