希望把数字部分加粗,即金额60000.00元的60000.00加粗,如果运用宏,怎么编写?(公式不能去掉的,因为我需要随时改变F6的数据,使D6数据跟着一起改变)
亲,真的无法保留公式啊。
以下代码,只针对一个单元格发生变更时的情况,
不考虑复杂情况,就是多个单元格同时发生变更的情况,
什么情况下属于多个单元格同时发生变更呢,
比如,一次性向多个单元格中粘贴值时。
比如,选中多个单元格、批量清空内容时。
操作方法:
在VBE左侧双击你要添加代码的工作表,
在右侧粘贴如下代码:
Private Sub Worksheet_Change(ByVal Target As Range) '值变更时触发该事件
'本代码只操作单个单元格发生变更的情况
'如果多个单元格同时发生变更则直接退出程序
If Target.CountLarge > 1 Then Exit Sub '若目标单元格为多个单元格,则退出sub
If Not Intersect(Target, Range("F2:F20")) Is Nothing Then '若目标单元格在该区域内
With Range("D" & Target.Row) '设置D列单元格
If IsEmpty(Target.Value) = True Then '如果目标单元格的值为空值
.ClearContents '则清空D格
Else
If IsNumeric(Target.Value) = False Then '如果目标单元格的值不是数字
.ClearContents '则清空D格
Else '否则,即目标单元格是数字的情况
Dim v As String, h As Integer
v = Format(Target.Value, "0.00") '赋值v=目标的值四舍五入并且强制2位小数
h = Len(v) '赋值h=v的字符数量
.Value = "金额" & v & "元" '向D单元格输出值
With .Characters(Start:=3, Length:=h).Font '设置D格文字,从第3个字符开始,长度h个字符
.Bold = True '文字加粗
.Color = vbRed '文字红色
End With
End If
End If
End With
End If
End Sub
追问F6单元格的数据经常有变化的,我设置多个公式在多个工作簿,都是围绕F6的数据来的,D6只是其中一个。你后面给的代码,最终运行后结果是怎样的?能实现我要的目的吗?可否给个EXCEL的截图演示下吗?因为代码我不熟,操作起来有点费工夫。
追答这个动图2M多,有点大,不知道能不能显示出来。
这个操作能否跨工作簿?比如F2:F20是工作簿1的内容,D列是工作簿2的内容,可有办法,然后工作簿2这个内容是同个一堆数据运算求和得出的结果。如果是这种方式,是否整个宏代码都要改?您那边能不能尝试帮帮忙,看看有没有办法实现,谢谢!
追答你这情况是越来越复杂了,能实现,但是需要详细交流具体情况。
威我,依屋留留凌留另久梧散,