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
展开
 我来答
nizheiwanyi
2015-07-02 · 知道合伙人软件行家
nizheiwanyi
知道合伙人软件行家
采纳数:546 获赞数:5709
数码爱好者

向TA提问 私信TA
展开全部
可利用工作表事件,复制如下代码在所要实现目标的sheet中。

Private Sub Worksheet_Change(ByVal Target As Range)

Target.Copy
    Target.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
更多追问追答
追问
试了下,这个代码没有任何作用……
追答

保证正确使用了吗?

粘贴位置在worksheet事件栏。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1af404
2015-07-02 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:4055万
展开全部

将以下代码,粘贴到该表的代码窗格中(注意!!!)

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式