我的代码行为相似,在步进低谷时运行正常(F8)但是在为图片,按钮或其他任何东西分配宏时,代码并没有按预期运行(也没有崩溃)。有谁知道修复?
我的代码只是将数据从一个工作表复制到另一个工作表中。谢谢。
Sub BaixarVenda()
pecas = 0
Sheets("Venda").Select
Range("A1").Select
If IsEmpty(Range("C7").Value) = False Then
'one item sale
Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Venda").Range("C4").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Venda").Range("C7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
Sheets("Venda").Range("C9").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
Sheets("Venda").Range("C11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
Sheets("Venda").Range("C13").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
pecas = pecas + 1
End If
If IsEmpty(Range("E7").Value) = False Then
Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Venda").Range("C4").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Venda").Range("E7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
Sheets("Venda").Range("E9").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
Sheets("Venda").Range("E11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
Sheets("Venda").Range("E13").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
pecas = pecas + 1
End If
If IsEmpty(Range("G7").Value) = False Then
'3 item sale
Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Venda").Range("C4").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Venda").Range("G7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
Sheets("Venda").Range("G9").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
Sheets("Venda").Range("G11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
Sheets("Venda").Range("G13").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
pecas = pecas + 1
End If
If IsEmpty(Range("I7").Value) = False Then
Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Venda").Range("C4").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Venda").Range("I7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
Sheets("Venda").Range("I9").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
Sheets("Venda").Range("I11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
Sheets("Venda").Range("I13").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
pecas = pecas + 1
End If
If IsEmpty(Range("K7").Value) = False Then
Sheets("Venda").Range("C2").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Venda").Range("C4").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Venda").Range("K7").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 2)
Sheets("Venda").Range("K9").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
Sheets("Venda").Range("K11").Copy Destination:=Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 4)
Sheets("Venda").Range("K13").Copy
Sheets("Historico vendas").Range("A1").End(xlDown).Offset(0, 5).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
pecas = pecas + 1
End If
Sheets("Venda").Select
MsgBox "Venda finalizada"
End Sub
答案 0 :(得分:0)
您确定已正确分配宏吗?在宏的开头放置一个消息框以确认它正在运行:
MsgBox "Running"
如果单击按钮时未显示消息框,则宏根本不运行。如果显示消息框但仍未正确复制数据,请尝试以下操作:
当您粘贴的工作表未处于活动状态时,使用“选择性粘贴”可能会出现问题。当您单步执行代码时,可以隐藏此问题,尤其是当您手动更改选项卡以查看每个步骤中发生的情况时。
请注意,您无需激活要复制的工作表,因此您只需要在宏的开头激活目标工作表:
Sheets("Historico vendas").activate
您只需更改代码,以便查看Venda表的所有内容都是合格的。看起来所有代码都已经过限定,但If语句中的范围除外。同时更新它们,然后查看它是否有效。 E.g。
If IsEmpty(Sheets("Venda").Range("C7").Value) = False Then