Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2048|回复: 4

[已解决]帮忙看看保留数值的宏选择区域时无虚线框提示是什么原因

[复制链接]
发表于 2016-12-6 08:05 | 显示全部楼层 |阅读模式
本帖最后由 huchuanxing 于 2016-12-6 10:08 编辑

以下是两段VBA代码:
Sub 去除选定区域公式保留数值()
    Dim rng As Range, rng1 As Range, address As String
    On Error GoTo VeryEnd
    Application.ScreenUpdating = False
    If TypeName(Selection) = "Range" Then address = Selection.address Else address = ""
    '弹出一个对话框, 让用户选择区域, 默认显示变量address的值。然后将该用户选择区域赋予变量rng
    Set rng = Application.InputBox("请选择去除公式的区域", "选定区域", address, , , , , 8)
    If rng Is Nothing Then Exit Sub

    For Each rng1 In rng
        If rng1.HasFormula Then rng1.Value = rng1.Value
    Next
    MsgBox "选定区域公式去除完毕,保留了数值!"
    Application.ScreenUpdating = True
VeryEnd:
End Sub

Sub 数字转文本()

    Dim rng As Range, rng1 As Range, address As String
    If TypeName(Selection) = "Range" Then address = Selection.address Else address = ""
    '弹出一个对话框, 让用户选择区域, 默认显示变量address的值。然后将该用户选择区域赋予变量rng
    Set rng = Application.InputBox("请选择待转换的区域", "转换区域", address, , , , , 8)
    If rng Is Nothing Then Exit Sub
    For Each rng1 In rng
        If rng1.Value <> "" Then
            rng1.Value = "'" & rng1.Value
        End If
    Next
End Sub


数字转文本代码,当你选择单元格区域时,选定区域会有虚线框提示选择的区域,如图一所示,而另一段代码,在选定区域时无虚线框提示选择的区域,如图二所示,这是为什么?可否对“去除选定区域公式保留数值”代码进行修改让它在选择区域时也能有虚线框提示选定的区域吗?





最佳答案
2016-12-6 08:44
Sub 去除选定区域公式保留数值()
    On Error Resume Next
    Dim rng As Range, rng1 As Range, address As String
    If TypeName(Selection) = "Range" Then address = Selection.address Else address = ""
    Set rng = Application.InputBox("请选择待转换的区域", "转换区域", address, , , , , 8)
    If rng Is Nothing Then Exit Sub
    For Each rng1 In rng
        If rng1.HasFormula Then rng1.Value = rng1.Value
    Next
    MsgBox "选定区域公式去除完毕,保留了数值!"
End Sub
图一.jpg
图二.png

附件.rar

17.04 KB, 下载次数: 13

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-12-6 08:44 | 显示全部楼层    本楼为最佳答案   
Sub 去除选定区域公式保留数值()
    On Error Resume Next
    Dim rng As Range, rng1 As Range, address As String
    If TypeName(Selection) = "Range" Then address = Selection.address Else address = ""
    Set rng = Application.InputBox("请选择待转换的区域", "转换区域", address, , , , , 8)
    If rng Is Nothing Then Exit Sub
    For Each rng1 In rng
        If rng1.HasFormula Then rng1.Value = rng1.Value
    Next
    MsgBox "选定区域公式去除完毕,保留了数值!"
End Sub
回复

使用道具 举报

发表于 2016-12-6 08:59 | 显示全部楼层
Application.ScreenUpdating = False,这句表示屏幕刷新关闭了,那就不会提示选择框了啊
回复

使用道具 举报

 楼主| 发表于 2016-12-6 09:56 | 显示全部楼层
zjdh 发表于 2016-12-6 08:44
Sub 去除选定区域公式保留数值()
    On Error Resume Next
    Dim rng As Range, rng1 As Range, addre ...

谢谢,very  much!
回复

使用道具 举报

 楼主| 发表于 2016-12-6 09:57 | 显示全部楼层
苏子龙 发表于 2016-12-6 08:59
Application.ScreenUpdating = False,这句表示屏幕刷新关闭了,那就不会提示选择框了啊

谢谢您的解惑!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 07:08 , Processed in 0.512302 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表