最近,有位朋友咨询:“有很多Excel文件是从软件中直接生成的,有些数据**.**KN是软件自动填写上去的,但是因为数据单位的问题,每次都需要将其手动更改为***.*KN。一般来说,都是几十个这样的文件,手动修改的工作量很大,所以想请教一下,看有没有简便的方法。”
他给的工作簿中,要修改两个位置的数据,分别为单元格G27和G54,其格式都是**.**KN,将其修改为***.*KN。如下所示。
使用VBA可以完成上述任务。代码如下:
Sub DatasArrange()
Dim strPath As String
Dim strName As String
Dim Wb As Workbook
Dim rng1 As Range
Dim rng2 As Range
‘获取文件夹路径和工作簿
strPath = ThisWorkbook.Path &”\”
strName = Dir(strPath &”*.xls*”)
On Error Resume Next
Application.ScreenUpdating = False
‘遍历文件夹中的工作簿
‘代码所在的工作簿除外
Do While strName <> “”
If strName <> ThisWorkbook.NameThen
Set Wb = Workbooks.Open(strPath& strName)
‘要修改的单元格
‘可根据实际调整
Set rng1 = Range(“G27”)
Set rng2 = Range(“G54″)
excel巧用公式快速计算评标分
近期在参加评标时,发现工作人员在汇总评委打分后,还是通过手工逐一去掉最高最低分来计算评分结果,费时费力,还容易出错。于是,自告奋勇,稍微编写了一个公式,立马将大约1 多个子项评分的计算迅速完成。 通常,在评委打完分数后,交给工作人员将分数逐个录入Excel,然后对于每个子项都要去掉一个最高分和高低分,再计算平均分,得
‘传递到修改值的子过程
ModifyDatas rng1, rng2
‘关闭并保存工作簿
Wb.Close True
End If
‘获取下一个工作簿
strName = Dir
Loop
Application.ScreenUpdating = True
End Sub
‘修改所接收的单元格中的值
Sub ModifyDatas(rng1 As Range,rng2 As Range)
On Error Resume Next
‘加一个判断条件,防止每运行一次就更改单元格值
If Mid(rng1, Len(rng1) – 3, 1) <>”.” Then
rng1.Value = Left(rng1.Value,Len(rng1.Value) – 2) * 1 & “KN”
End If
If Mid(rng2, Len(rng2) – 3, 1) <>”.” Then
rng2.Value = Left(rng2.Value,Len(rng2.Value) – 2) * 1 & “KN”
End If
End Sub
DatasArrange过程遍历工作簿所在文件夹中除本工作簿以外的所有工作簿,将工作簿中当前工作表单元格G27和G54中的值进行修改,关闭并保存修改后的工作簿。
运行DatasArrange过程,批量修改文件夹中的工作簿,达到所示的效果。
代码图片版如下:
excel输入日期和时间的2个方法
在工作表中输入日期和时间是经常要进行的操作,如果要输入当前的日期和时间,我们可以使用快捷键,也可以使用Excel内置的函数。 方法1:使用快捷键输入日期和时间 选取需要输入日期和时间的单元格,按Ctrl ;快捷键,此时Excel会在单元格中输入当前日期。保持该单元格处于编辑状态,按一次空格键,再按Ctrl Shif