VBA 不执行,提示"要求对象"

请问各位老师,执行下面代码,提示:要求代码,请帮助修改,谢谢Sub计算普通件零售价()IfTarget.Count<>1ThenExitSub'如果TARGET单元格区域... 请问各位老师,执行下面代码,提示:要求代码,请帮助修改,谢谢
Sub 计算普通件零售价()
If Target.Count <> 1 Then Exit Sub '如果TARGET单元格区域中、单元格数量大于1,就退出程序。也就是说,只选择一个单元格时,才执行下面的代码。
Application.EnableEvents = False
If Target.Row > 2 And Target.Column = 6 Then '如果活动单元格的行号大于2(从第3行往后的单元格)、而且单元格的列号等于6(就是说必须是F列),才执行下面代码。
ActiveCell.FormulaR1C1 = "=ROUNDUP(RC[1]*1.54,0)" '在当前单元格按公式计算零售价

Selection.Copy '复制该单元格
Selection.PasteSpecial Paste:=xlPasteValues '"选择性粘贴""数值"至该单元格
Selection.Interior.Color = 65535 '填充黄色
End If
End Sub
谢谢您,二楼天老师,我不希望使用Private Sub Worksheet_SelectionChange(ByVal Target As Range)它,怎么办,请指教
谢谢您,三楼老师,我的代码下半部分,是我自己录制的,并且经过编辑,而上半部分,是在网上复制过来的,不是很理解,我对宏也不明白,因此,您下面的说明,不理解,请明示,谢谢您
说明:不用赋值单元格的值,用下面的语句,简单
Selection.Value = Selection.Value
展开
 我来答
帐号已注销
2010-12-25 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2846万
展开全部
Option Explicit

Sub 计算普通件零售价()
'使用with语句,针对选中的单元格备手操作
With Selection
'直接写全退出的条件
If .Count <> 1 Or .Row <= 2 Or .Column <> 6 Then MsgBox "a": Exit Sub
'设置所有的事件不触发
Application.EnableEvents = False
'写入公式
.FormulaR1C1 = "=ROUNDUP(RC[1]*1.54,0)"
'将单元格的结果赋值给该单元格
.Value = .Value
'设置单元格底色
.Interior.Color = vbYellow
'设置所有的事件触发
Application.EnableEvents = True
End With
End Sub
'----------------------
'说明:不用赋值单元格的值,用下宏滚简面的语句,简单
'Selection.Value = Selection.Value
'也就是上面蔽裤的这句:
'.Value = .Value
'前面一句给这个单元格写入了公式,用这句将结果赋值给该单元格
精密的天狼星
2010-12-25 · 超过25用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:42.5万
展开全部
因为你的语句中Target没定义所以出错,可将你的语句放在下面事件中
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...
End Sub
注意:败弯这个事件是在相应sheet对应的代码中,察升闷比如sheet1,不要放在module中
不用这个事件的话,可以这样改
Sub 计算普通件笑哪零售价()
Dim row1 As Integer, count1 As Integer
row1 = Range(Selection.Address).Row
count1 = Range(Selection.Address).Columns.Count
If count1 <> 1 Then Exit Sub
Application.EnableEvents = False
If row1 > 2 And count1 = 6 Then
ActiveCell.FormulaR1C1 = "=ROUNDUP(RC[1]*1.54,0)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Selection.Interior.Color = 65535
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bjhengte
2010-12-25 · TA获得超过1339个赞
知道小有建树答主
回答量:1035
采纳率:0%
帮助的人:925万
展开全部
直接赋圆粗值就行橘返镇了 selection=Application.WorksheetFunction.RoundUp(RC[1]* 1.54, 0)
不世游必先插入函数、复制、选择性粘贴了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式