发布网友 发布时间:2022-04-22 06:14
共5个回答
热心网友 时间:2023-11-29 12:57
filecopy 有一个缺点~如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误
你可以试试用DOS的copy 是VB调用DOS命令哦 别理解错了
shell "cmd /c copy E:\111.xls E:\111\" & date & time & ".xls" ,0
编程是为了将复杂变简单 何必执着于形式~
还有一种
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "源", "目标"
但这种方法有可能受权限的制约 导致错误
VB 内置函数就这么2个copy 且都有缺陷
如果你什么都要用纯VB实现 那连API也不能用了 它只是个接口
热心网友 时间:2023-11-29 12:58
不用FSO的复制文件夹得方法?
用API函数 SHFileOperation
以下是使用SHFileOperation删除复制移动文件的例子,可以复制文件夹
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String '只有在 FOF_SIMPLEPROGRESS 时用
End Type
Private Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As Long
'wFunc 常数
'FO_COPY 把 pFrom 文件拷贝到 pTo。
Const FO_COPY = &H2
'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
Const FO_DELETE = &H3
'FO_MOVE 把 pFrom 文件移动到 pTo。
Const FO_MOVE = &H1
'fFlag 常数
'FOF_ALLOWUNDO 允许 Undo 。
Const FOF_ALLOWUNDO = &H40
'FOF_NOCONFIRMATION 不显示系统确认对话框。
Const FOF_NOCONFIRMATION = &H10
'FOF_NOCONFIRMMKDIR 不提示是否新建目录。
Const FOF_NOCONFIRMMKDIR = &H200
'FOF_SILENT 不显示进度对话框
Const FOF_SILENT = &H4
'例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 删除
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
' 删除多个文件
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" +Chr(0) + "c:\autoexec.old"+Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO
Call SHFileOperation(SHFileOp)
' 拷贝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\t"
SHFileOp.pTo = "d:\"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
' 移动
SHFileOp.wFunc = FO_MOVE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.pTo = "d:\t"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
或者
shell "cmd.exe /c xcopy "+chr(34)+"C:\新建文件夹 c:\aa /q /e" +chr(34)
热心网友 时间:2023-11-29 12:58
如果你插入的是窗体控件,很简单的。(activex控件比较麻烦,得用vba代码)
右键点车间(1)控件,设置格式,最后一个标签“控制”,单元格链接处点到比如sheet1的g1,确定。
在sheet2的a1输入
=if(sheet1!g1,"车间(1)","车间(2)")
就可以了。
热心网友 时间:2023-11-29 12:59
On error reusme Next
if Dir("E:\1111\")="" then Mkdir "E:\1111\"
f= "e:\111.xls"
a=format(date,"yyyymmdd")
b=format(time,"hhmmss")
ff = "e:\111\" & a & b & ".xls"
FileCopy f,ff
热心网友 时间:2023-11-29 13:00
startname = "e:\111.xls"
a=date
b=time
c = a&b
endname = "e:\111\" + c + ".txt"
FileCopy startname, endname
一定好用 哥们!