请问,在Excel中如何用VBA提取数据后保留原格式不变?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问,在Excel中如何用VBA提取数据后保留原格式不变?相关的知识,希望对你有一定的参考价值。

在excel中,比如:sheet1的H列中输入了田径比赛400米成绩,自定义了成绩格式是0:00.00,如3分23秒58,即输入了3:23.58 ,生成成绩册要调取该成绩,如何设置VBA代码,确保调取该成绩保持原格式。
田赛“跳高”比赛成绩数字格式是0.00,如1米27,即输入1.27;如果是1米30,即1.30 。如何确保生成成绩册调取该数据保持格式不变?即小数点后是两位数。

你这两个格式都是数值,系统能够保存,VBA语句输出的时候设置一下单元格格式就可以,例如:
range("a1").numberformat = "0.00"
range("a1")=1.3\'会显示1.30
参考技术A =range("H1").text
即可 改为 设置的格式,而不是 数据本身追问

没有用。

追答


如何用EXCEL VBA批量提取JPG文件日期时间信息到表格中?

我的工作中需要每天制作一个检查表,表中列出当天拍摄的所有照片(每天照几十张,并一一按照片内容改好名字,并存在一个文件夹内)的名称、拍照日期,同时照片插入到名称单元格的批注内。主要问题我用VBA已经解决了,就是不能自动读取并插入JPG文件的日期时间信息。可有高手帮忙,感激不尽。

使用这个函数吧,可以得到文件的 创建时间 或 最后修改时间:
-------------------------
Function iFileDate(iPh, n)
' 参数说明:
' iph 文件路径。
' n 时间类型。 1 为 创建时间;2 为 最后修改时间
If Dir(iPh) = "" Then Exit Function
Dim fs: Set fs = CreateObject("Scripting.FileSystemObject")
Dim f: Set f = fs.GetFile(iPh)
If n = 1 Then iFileDate = f.DateCreated
If n = 2 Then iFileDate = f.DateLastModified
End Function
---------------------

具体使用方法举例:
---------------
Sub iTest()
Dim iPh, iDate1, iDate2
iPh = "G:\D baiduHi\VBA 文件操作\a.xls"
If Dir(iPh) = "" Then
MsgBox "下面的文件不存在:" & vbCrLf & iPh, vbCritical
Exit Sub
End If
iDate1 = "  创建时间:" & vbTab & iFileDate(iPh, 1)
iDate2 = "最后修改时间:" & vbTab & iFileDate(iPh, 2)
MsgBox iPh & vbCrLf & iDate1 & vbCrLf & iDate2
End Sub追问

需做一定修改,你这个函数是非常好用的。

参考技术A 用VBA我不会,但可以建一个批处理文件(*.bat),里面就一条命令
dir>list.xls
(说明:list 可以其他字符)
将.bat文件复制到相应的文件夹内,双击运行,就能将文件名及日期时间信息读到《list.xls》文件内。然后打开该文件,用分列的方法将文件名、日期、时间分放在不同单元格内。
参考技术B 创建一个FileSystemObject,然后getfile(),.datecreated就是文件创建时间,datelastmodified就是文件修改日期,datelastaccessed就是文件访问时间。。 参考技术C 去文库找以下文件

批量提取JPG文件名拍摄时间并插入图片到批注本回答被提问者采纳

以上是关于请问,在Excel中如何用VBA提取数据后保留原格式不变?的主要内容,如果未能解决你的问题,请参考以下文章

在excel中如何用vba来实现查找特定的字符串?

excel中如何用VBA一次读入一整行的数据到字符串中? 谢谢!

在excel中如何用VBA取得每页的行数?

VBA研究VBA中如何用求和函数SUM求和

EXCEL中如何用背景色标记数据

在Excel中如何用vba实现:每隔一段时间自动将工作簿保存到以当时时间为文件名的文件中