請問各位大大 在excel中如何以撰寫VBA使得自動以某特定儲存格內容命名並另存新檔
- 帖子
- 1
- 主題
- 1
- 精華
- 0
- 積分
- 2
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- office 2007
- 閱讀權限
- 10
- 性別
- 女
- 來自
- 台北
- 註冊時間
- 2010-9-9
- 最後登錄
- 2010-9-16
|
請問各位大大 在excel中如何以撰寫VBA使得自動以某特定儲存格內容命名並另存新檔
各位大大
小妹嘗試多次依然失敗想請問如何將附檔中依序將七個縣市(Sheet1)中的經緯度(X, Y欄)各別對七個網格(Sheet2)中的中心點經緯度(X,Y欄)利用畢氏定理求距離,接著轉換成公里並另存成一個新檔
也就是最後會有七個檔,但因為實際上有一千多個縣市,希望能夠利用巨集或VBA程式一次執行一千多筆資料不用一個個執行程式存檔,小妹現在用的程式為
1.
Public Function slength(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer)
slength = ((x1 - x2) ^ 2 + (y1 - y2) ^ 2) ^ 0.5 '畢氏定理
End Function
2.
Public Function km(degree)
km = degree * 110 '經緯度距離轉公里
End Function
希望能夠獲得解答 謝謝 |
-
-
縣市資料.rar
(7.19 KB)
excel表單
|
|
|
|
|
|
- 帖子
- 472
- 主題
- 5
- 精華
- 0
- 積分
- 485
- 點名
- 0
- 作業系統
- Windows
- 軟體版本
- MS Office
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 香港
- 註冊時間
- 2010-7-4
- 最後登錄
- 2014-12-28

|
2#
發表於 2010-9-9 20:26
| 只看該作者
回復 1# LYL
hello,
可否發一下現在你用來運一個檔的代碼?
其實基本上再在之上自動在每一個檔運行的代碼就可以了. |
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
3#
發表於 2010-9-10 00:14
| 只看該作者
本帖最後由 luhpro 於 2010-9-10 00:41 編輯
如果你急著要得到相關數據的話,我提供一個較簡單的方式 :
以下敘述中儲存格 H ~ M 分別對應到 Sheets(Sheet2) 的 2 ~ 7 列所代表的城市
H2=POWER(POWER(($F2-Sheet2!$B$2),2)+POWER(($G2-Sheet2!$C$2),2),0.5)*110
I2=POWER(POWER(($F2-Sheet2!$B$3),2)+POWER(($G2-Sheet2!$C$3),2),0.5)*110
.
.
.
M2==POWER(POWER(($F2-Sheet2!$B$7),2)+POWER(($G2-Sheet2!$C$7),2),0.5)*110
Mark H2 ~ M2 後再往下複製即可得到你要的所有城市間的距離(公里數)
至於 VBA 程式的方式大致上妳已經將關鍵的部分秀出來了,
存檔的話可以用
for iI = 1 To 6
此處計算公里數並放進相關的儲存格內
sFileName = Sheets("Sheet2").Cells(iI + 1 , 1) '假設以 Sheets("Sheet2").[A2] ~ [A7] 內容為檔名
With Sheets("Sheet1")
Application.DisplayAlerts = False
.Copy
With ActiveWorkbook
.SaveAs sFileName
.Close
End With
Application.DisplayAlerts = True
End With
Next iI
應該不會有什麼問題才是 |
|
|
|
|
|
|