excel VBA 当有公式的单元格录入内容后,自动将内容粘贴为数值
A列使用了公式,当G列录入内同后,A列会自动生成内容如图2。我想通过VBA实现,当A列自动录入内容后,能够将公式生成的结果,自动转换为“值”(这个步骤可以通过录制一个“粘...
A列使用了公式,当G列录入内同后,A列会自动生成内容如图2。我想通过VBA实现,当A列自动录入内容后,能够将公式生成的结果,自动转换为“值”(这个步骤可以通过录制一个“粘贴为值”的宏实现),需要加一个,A列由空值变为非空的判断,并且在转换为值前,弹出一个窗体,让我选择是否将A列内容转换为值,选是继续,选否则退出程序。另外,比如我这次是在G87 G88录入内容,则A87 A88会自动生成数据,此时只允许A87 A88自动转换成值,其他A列其他单元格则不允许进行此操作
请大家帮帮忙这个要怎么做?
图1
图2 展开
请大家帮帮忙这个要怎么做?
图1
图2 展开
2个回答
展开全部
将以下代码,粘贴到该表的代码窗格中(注意!!!)
Private Sub Worksheet_Change(ByVal Target As Range)
application.EnableEvents=False
if target.column=7 then
if target.row >5 then
if target.count=1 then
if target.value<>"" then
cells(target.row,1)=cells(target.row,1).value
end if
end if
end if
end if
application.EnableEvents=true
End Sub
追问
谢谢,刚才弄错了,不过可以加一个提示让我选择是否粘贴为值的功能吗?这个没有提示,就直接转换为值了
追答
Private Sub Worksheet_Change(ByVal Target As Range)
application.EnableEvents=False
if target.column=7 then
if target.row >5 then
if target.count=1 then
if target.value<>"" then
if msgbox("是否将公式转换为值?",vbyesno,"转换确认")=6 then
cells(target.row,1)=cells(target.row,1).value
end if
end if
end if
end if
end if
application.EnableEvents=true
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询