...エクセルVBAは、私は次のコードは、デバッグモードでのみ動作しますなぜ把握しようとしています
私は私の「保存」ボタンを押して、マクロでも、すべてのデータエントリが保存されますそれが同じ会社名の場合。マクロをデバッグすると、for-loopに入り、 "Company already already"というメッセージが表示されます。
ここで私のエラーIf Cells(currentAccRow, accColumn).Value = ValueToFind Then
で
Sub Copy_Values()
Dim sapcolleague As String, str1 As String, str2 As String, str3 As String
Dim i As Integer, ValueToFind As String, ValueToCheck As String
Dim totalAccRows As Integer
Dim accColumn As Integer
Dim currentAccRow As Integer
accColumn = 2
totalAccRows = Worksheets("DB").Cells(Rows.Count, accColumn).End(xlUp).Row
ValueToFind = Worksheets("Maintain").Range("F13").Value
For currentAccRow = 2 To totalAccRows
If Cells(currentAccRow, accColumn).Value = ValueToFind Then
MsgBox ("Company already exists!")
Exit Sub
End If
Next
Worksheets("DB").Range("A8").EntireRow.Insert
Worksheets("DB").Range("A8").Value =
Worksheets("Maintain").Range("F11").Value
Worksheets("DB").Range("B8").Value =
Worksheets("Maintain").Range("F13").Value
Worksheets("DB").Range("C8").Value =
Worksheets("Maintain").Range("F15").Value
str1 = Worksheets("Maintain").Range("F18").Value
str2 = Worksheets("Maintain").Range("F19").Value
str3 = Worksheets("Maintain").Range("F20").Value
sapcolleague = str1 & " " & str2 & " " & str3
Worksheets("DB").Range("D8").Value = sapcolleague
' This MsgBox will only show if the loop completes with no success
MsgBox "Successfully saved!"
End Sub
保存して、このマクロの間の接続は何ですか? – sktneer
'If Cells(currentAccRow、accColumn).Value = ValueToFind Then'ここでは、セルはどのシートがアクティブシートであるかを参照します。範囲/セルをワークシートオブジェクトで使用するたびにすべての*を修飾するのが最善です。デバッグする際に別のシートを選択することがあります。 'もしワークシート(" DB ")を使う。セル(currentAccRow、accColumn).Value = ValueToFind Then' –
素晴らしいヒント!私は正しいワークシートを参照することを確認していませんでした。あなたの提案はうまくいった! ありがとう! –