excel求如何用宏实现删除指定列的指定字

现在有一个工资表,里面有一列就是实发工资,比如 3200元 这样子,这个工资表大概有一万多行,全部是xxxx元的格式,现在我想将这列的所有“元”字删除,并转换成数字或货币格式,以便最后合计工资总额。VBA和宏的新手,请大神指点该怎么编代码或录制宏,要求一键删除该列所有“元”字。

打开表格文件,按组合键[ALT]+[F11],打开宏编辑器

在编辑器中插入模块

然后在右侧出现的模块代码编辑区录入一下程序代码

Sub 去掉元()
表名 = "sheet1"
列 = "c" '此处字母代表你要去掉元字的数据所在的列
开始行 = 1 '此处数字代表你要去掉元字的数据开始的行的行号
结束行 = 100 '此处数字代表你要去掉元字的数据结束的行的行号
For i = 开始行 To 结束行
xxx = Worksheets(表名).Cells(i, 列)
xxx = Left(xxx, Len(xxx) - Len("元"))
Worksheets(表名).Cells(i, 列) = xxx
Next i
End Sub

关闭宏编辑窗口,[ALT]+[F8]打开宏管理窗口

点击选项按钮,输入快捷键q,然后按确定按钮

之后直接按组合键[CTRL]+[q],就可以执行程序了,程序中的具体参数根据你的具体情况自己修改吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-27
可以删除选定区域内的空行
Private Sub Deleteblankrow()
On Error Resume Next
Dim rowindex As Long, columnindex As Long
Dim ifblank As Boolean
Dim actioncount As Long
Application.ScreenUpdating = False
For rowindex = 1 To selection.Rows.Count
For columnindex = 1 To selection.Columns.Count
If selection.Cells(rowindex, columnindex) <> "" Then
ifblank = False
Exit For
Else
ifblank = True
End If
Next columnindex

If actioncount >= selection.Rows.Count Then
Exit For
Else
If ifblank = True Then
selection.Rows(rowindex).EntireRow.Delete
rowindex = rowindex - 1
actioncount = actioncount + 1
End If
End If

Next rowindex
Application.ScreenUpdating = True
MsgBox "Mission complete", vbOKOnly, "Deleteblankrow"
End Sub
第2个回答  2013-10-15
我还是说说需求吧,其实是要从一份给出的工资表中算出工资总额,然后通过修改某些人的工资来满足社保缴费的需求。工资表的xxxx元是不能改的,我现在就多复制一行,想算出总额,略作调整,再交回给财务,然后就打印成工资条了。希望能给出通用的修改方法……
第3个回答  2013-10-15
不用宏,选定此列,ctrl+f 替换 元替换