0
这是我在这里的第一篇文章,我花了一些时间搜索并用脑袋敲打我的头靠在墙上看着,但我仍在学习VBA,可能会错过一些东西。 我试图从我输入它们的列中移动值的分组,到我以前的输入历史记录的表中,以便我可以计算平均值。 我使用IF条件来检测输入字段中的值,但由于某种原因,它跳到了IF循环的末尾,并给出了ELSE结果。 有没有什么我可能做错了脱颖而出?vba无法识别单元格中的值
在此先感谢
Sub MoveValuesToPrior()
'
' MoveValuesToPrior Macro
'
Application.ScreenUpdating = False
If WorksheetFunction.Sum(Sheets(2).Range("D3:D1000")) > 0 Then
Sheets(1).Range("C2:C11").Copy
Sheets(1).Range("B2").PasteSpecial Paste:=xlPasteValues
Sheets(2).Range("D3:D1000").Copy
Sheets(2).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(2).Range("D3:D1000").ClearContents
Sheets(2).Range("L3:L1000").Copy
Sheets(2).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(2).Range("L3:L1000").ClearContents
Sheets(3).Range("D3:D1000").Copy
Sheets(3).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(3).Range("D3:D1000").ClearContents
Sheets(3).Range("L3:L1000").Copy
Sheets(3).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(3).Range("L3:L1000").ClearContents
Sheets(4).Range("D3:D1000").Copy
Sheets(4).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(4).Range("D3:D1000").ClearContents
Sheets(4).Range("L3:L1000").Copy
Sheets(4).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(4).Range("L3:L1000").ClearContents
Sheets(5).Range("D3:D1000").Copy
Sheets(5).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(5).Range("D3:D1000").ClearContents
Sheets(5).Range("L3:L1000").Copy
Sheets(5).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(5).Range("L3:L1000").ClearContents
Sheets(6).Range("D3:D1000").Copy
Sheets(6).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(6).Range("D3:D1000").ClearContents
Sheets(6).Range("L3:L1000").Copy
Sheets(6).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(6).Range("L3:L1000").ClearContents
Sheets(7).Range("D3:D1000").Copy
Sheets(7).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(7).Range("D3:D1000").ClearContents
Sheets(7).Range("L3:L1000").Copy
Sheets(7).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(7).Range("L3:L1000").ClearContents
Sheets(8).Range("D3:D1000").Copy
Sheets(8).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(8).Range("D3:D1000").ClearContents
Sheets(8).Range("L3:L1000").Copy
Sheets(8).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(8).Range("L3:L1000").ClearContents
Sheets(9).Range("D3:D1000").Copy
Sheets(9).Range("C3").PasteSpecial Paste:=xlPasteValues
Sheets(9).Range("D3:D1000").ClearContents
Sheets(9).Range("L3:L1000").Copy
Sheets(9).Range("K3").PasteSpecial Paste:=xlPasteValues
Sheets(9).Range("L3:L1000").ClearContents
Sheets(1).Activate
Application.CutCopyMode = False
Else: MsgBox ("The current data has already been moved to prior.")
End If
Application.ScreenUpdating = True
End Sub
什么是从'MSGBOX WorksheetFunction.Sum(表(2).Range(“D3的结果: D1000" ))'? – Slai
你调试过这个表达式吗?WorksheetFunction.Sum(Sheets(2).Range(“D3:D1000”))'?我的意思是你期望什么结果,什么结果显示调试器? – Alex
即使是您认为它的表单,“表单(2)”也是如此吗?在你的If语句之前包含一个'MsgBox Sheets(2).Name',并确保它返回你期望的表名。 – YowE3K