COCO研究院

 找回密碼
 註冊
搜索
查看: 24309|回復: 13

EXCEL如何自動更改檔名

[複製鏈接]
發表於 14-5-15 20:29 | 顯示全部樓層 |閱讀模式
今有一EXCEL其檔名為AA DDE.XLS   希望  一開啟 EXCEL  其檔名就改為BB DDE.XLS   請幫忙賜教   謝謝
發表於 14-5-15 21:59 | 顯示全部樓層
開啟檔案,就無法變更原檔名!
另存新檔即可!
用autoit也許辦得到!不懂!
發表於 14-5-15 23:02 | 顯示全部樓層
去程式"設計"版問看看吧!!
發表於 14-5-15 23:36 | 顯示全部樓層
這個問題可有趣了
AA DDE.XLS改為BB DDE.XLS
BB DDE.XLS存檔後下次開啟改什麼
改CC DDE.XLS嗎
改到ZZ DDE.XLS時
接下來要改什麼?
問題不清不楚的
很難有人能幫的了你

評分

參與人數 1金錢 +1 收起 理由
tinyding + 1

查看全部評分

發表於 14-5-16 00:34 | 顯示全部樓層
KHL 發表於 14-5-15 23:36
這個問題可有趣了
AA DDE.XLS改為BB DDE.XLS
BB DDE.XLS存檔後下次開啟改什麼

KHL大說得很中肯~~~~

有時候說清楚為什麼想要這樣做,可能更容易讓大家幫MORI大找出解決方案。

不然我直覺就是自己直接改就好了,為啥要寫程式自動改?

評分

參與人數 1金錢 +1 收起 理由
tinyding + 1

查看全部評分

發表於 14-5-16 07:45 | 顯示全部樓層
用EXCEL VBA寫個指令就好啦
ActiveWorkbook.SaveAs Filename:="C:\BB DDE.XLS"
路徑自己改

小弟才疏學淺,只會用錄製的方法寫vba,錄製好在適當的修改就好啦
 樓主| 發表於 14-5-16 07:48 | 顯示全部樓層
AA DDE.XLS 是一家卷商的EXCEL DDE
BB DDE.XLS 是飛胡INI的檔名
由於有多家卷商EXCEL DDE 此時飛胡INI的檔名也要改與卷商同檔名  這樣很麻煩啦
希望 飛胡INI的檔名不要改 只要一開啟卷商的EXCEL DDE就變為飛胡INI的檔名 關機就回復原檔名 即可
發表於 14-5-16 08:41 | 顯示全部樓層
本帖最後由 rockwell 於 14-5-16 08:43 編輯
mori868 發表於 14-5-16 07:48
AA DDE.XLS 是一家卷商的EXCEL DDE
BB DDE.XLS 是飛胡INI的檔名
由於有多家卷商EXCEL DDE 此時飛胡INI的檔 ...

原來是用多家券商的DDE連結喔~~~

那應該可以將多家券商DDE的連結都放到同一個EXCEL中,
直接改成對應飛狐的檔名就行了吧!這樣不就能看到多家券商DDE的數據嘛!
看起來是不需要檔名改來改去才是。


補充一下:
DDE的連接應該是不管EXCEL檔名是啥,只要券商程式有開,
EXCEL開啟時,DDE就會自動連接了,應該是這樣。



發表於 14-5-16 11:20 | 顯示全部樓層
上google查其實很快的。 除非真的找不到 才來發問哦 ^^
發表於 14-5-16 17:59 | 顯示全部樓層
很久沒寫VBA了
隨手做了個範例給你參考
(請依實際需求作修改)
AA DDE.7z (7.35 KB, 下載次數: 2, 售價: 1 金錢)
'事件
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Name = "BB DDE.xls" Then Call 還原檔名VBA
End Sub
Private Sub Workbook_Open()
Call 修改檔名VBA
End Sub

'模組
Option Explicit

Sub 修改檔名VBA()
Dim newwk As Object
Dim newfname As String
Set newwk = ThisWorkbook
With newwk
  newfname = .Path & "\" & .Name
  If .Name = "AA DDE.xls" Then
   Application.DisplayAlerts = False
   Application.AskToUpdateLinks = False
   .SaveCopyAs .Path & "\BB DDE.xls"
   Workbooks.Open .Path & "\BB DDE.xls"
   Workbooks("BB DDE.xls").Activate
   .ChangeFileAccess xlReadOnly
   Kill .FullName
   Application.DisplayAlerts = True
   Application.AskToUpdateLinks = True
   .Close False
  End If
End With
End Sub

Sub 還原檔名VBA()
Dim oldwk As Object
Dim oldfname As String
Set oldwk = ThisWorkbook
With oldwk
  If .Name = "BB DDE.xls" Then
   oldfname = .Path & "\" & .Name
   Application.DisplayAlerts = False
   Application.AskToUpdateLinks = False
   .SaveCopyAs .Path & "\AA DDE.xls"
   On Error Resume Next
   .ChangeFileAccess xlReadOnly
   Kill .FullName
   On Error GoTo 0
   Application.DisplayAlerts = True
   Application.AskToUpdateLinks = True
   Application.Quit
  End If
End With
End Sub


發表於 14-5-17 11:08 | 顯示全部樓層

Ori_Name: 原始檔名(含完整路徑)
New_Name:更新後檔名(含完整路徑)

不用開檔啊!用:Name Ori_Name as New_Name
不就好了嗎?
 樓主| 發表於 14-5-20 07:53 | 顯示全部樓層
rockwell 發表於 14-5-16 08:41
原來是用多家券商的DDE連結喔~~~

那應該可以將多家券商DDE的連結都放到同一個EXCEL中,

本來是三家券商DDE的連結都放到同一EXCEL中是可行  可是若券商的看盤軟體未開啟時會顯示一大堆視窗要按確定後才能使用  很煩啦  所以改為一家券商一EXCEL 而EXCEL改用通用檔名 並連結到飛胡 這樣無論用那家的EXCEL飛胡的INI檔名就不用改了  今已改用一家券商一EXCEL 再增一轉換飛胡的INI檔名的按鈕  飛胡就不用改了
希望
開啟一家券商一EXCEL 而EXCEL並直接改為 "通用檔名"  既方便又省事啦
發表於 14-5-20 10:17 | 顯示全部樓層
mori868 發表於 14-5-20 07:53
本來是三家券商DDE的連結都放到同一EXCEL中是可行  可是若券商的看盤軟體未開啟時會顯示一大堆視窗要按確 ...

那能複製3個飛狐的ini檔,分別應對不同的EXCEL檔,可以這樣嗎?
 樓主| 發表於 14-5-20 20:36 | 顯示全部樓層
rockwell 發表於 14-5-20 10:17
那能複製3個飛狐的ini檔,分別應對不同的EXCEL檔,可以這樣嗎?

這也是另一種方法  可是這樣要開啟兩套軟體 比較麻煩   希望  若是DDE斷線時只要開啟另一券商DDE就又連線了 真方便吧  

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-25 14:26

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |