【发布时间】:2018-02-15 16:56:29
【问题描述】:
我对 VBA 相当陌生,我无法弄清楚我做错了什么或错误。我正在尝试遍历某个范围。如果来自用户窗体的文本框值等于该范围内的单元格,它会插入一个新行并在该行中添加来自用户窗体的输入,然后结束 for 循环。如果它在范围的末尾并且仍然不相等,它会在最后一行之后添加数据。
Dim rng As Range
Set rng = ("F2:F1000")
For Each cell In rng
If cell.Text = TextBox6.Text Then
rng.EntireRow.Insert Shift:=xlDown
ws.Range("A" & rng).Value = TextBox13.Text
ws.Range("B" & rng).Value = TextBox2.Text
ws.Range("C" & rng).Value = TextBox3.Text
ws.Range("D" & rng).Value = TextBox4.Text
ws.Range("E" & rng).Value = TextBox5.Text
ws.Range("F" & rng).Value = TextBox6.Text
ws.Range("G" & rng).Value = TextBox7.Text
ws.Range("H" & rng).Value = TextBox8.Text
ws.Range("I" & rng).Value = TextBox9.Text
ws.Range("J" & rng).Value = TextBox10.Text
ws.Range("K" & rng).Value = TextBox11.Text
ws.Range("L" & rng).Value = TextBox12.Text
Exit For
ElseIf Cells(1000, "F") And cell.Text <> TextBox6.Text Then
Dim LastRow As Long, ws As Worksheet
Set ws = Sheets("Inventory Overview")
LastRow = ws.Range("A" & Rows.count).End(xlUp).Row + 1 'Finds the last blank row
' Inserts Data
ws.Range("A" & LastRow).Value = TextBox13.Text
ws.Range("B" & LastRow).Value = TextBox2.Text
ws.Range("C" & LastRow).Value = TextBox3.Text
ws.Range("D" & LastRow).Value = TextBox4.Text
ws.Range("E" & LastRow).Value = TextBox5.Text
ws.Range("F" & LastRow).Value = TextBox6.Text
ws.Range("G" & LastRow).Value = TextBox7.Text
ws.Range("H" & LastRow).Value = TextBox8.Text
ws.Range("I" & LastRow).Value = TextBox9.Text
ws.Range("J" & LastRow).Value = TextBox10.Text
ws.Range("K" & LastRow).Value = TextBox11.Text
ws.Range("L" & LastRow).Value = TextBox12.Text
End If
Next cell
【问题讨论】:
标签: excel excel-2013 vba