• 2

請教excel VBA的問題

想請問01上的高手
小弟我有用EXCEL VBA寫個 開啟另一個TXT檔的,如下:
Sub 讀取報表()
'
Set app = CreateObject("Excel.Application")
With app
fileopen = .Application.GetOpenFilename("報表(*.TXT), *.TXT")
.Workbooks.Open (fileopen)
.Visible = True

Call Macro1


End With


End Sub

但是我有一個問題,點它開啟檔案後,會另開一個excel檔,
我想把另開報表中的sheet1中的A整行 對應到原本(有VBA程式)的excel檔中sheet3的C整行
就是拷貝的意思,我該怎麼做?用了一個下午,不會就是不會,只好上來請教了!


還有一個問題想請教,就是有辦法開啟EXCEL就執行巨集,不讓使用者有改工作表資料的權限嗎?
謝謝了~感激不盡!
2009-02-05 17:34 發佈
文章關鍵字 Excel VBA 問題
先教學開啟EXCEL 執行 VBA的方式
注意紅框位置的選項
再進行程式編寫即可

謝謝~這個我會,我就是在這邊用出開啟另檔的函數,我只是想問說工作表複製的函數...謝謝哦!


你可以透過工具=>錄製巨集,(應該是)
把複製的動作錄下來,就可以看到程式碼。

已經不用 MS Office 很久了,沒辦法貼圖。
Book2 為新開檔名
Workbooks("Book2").Sheets("sheet1").Range("A:A").Copy Destination:=Sheets("sheet3").Range("C:C")
pa_pa wrote:
Book2 為新開檔...(恕刪)

您好,先謝謝你!
不過,不知道是不是資料太多
會出現以下訊息


該怎麼做?謝謝
Flyingsquirrel wrote:
你可以透過工具=&g...(恕刪)

嗯 嗯 謝謝你,不過這我試過了~沒有用...
目前vba是這樣,報表副檔名是dbf檔,是用excel開的! 例如報表檔名是123.dbf,
用巨集另外開啟後就會出現陣列索引超出範圍!!謝謝了!

Sub 讀取報表檔()
'
Set app = CreateObject("Excel.Application")
With app
fileopen = .Application.GetOpenFilename("報表 (*.dbf), *.dbf")
.Workbooks.Open (fileopen)
.Visible = True

Workbooks("123.dbf").Sheets("sheet1").Range("A:A").Copy Destination:=Sheets("sheet3").Range("C:C")

End With


End Sub
deplore wrote:
目前vba是這樣,報...(恕刪)


當你用Application方式去開啟一個活頁簿時,雖然可以打開,
但無法對這個活頁簿使用任何vba的指令


Book1是正常開啟時的名稱,Microsoft Excel - 11.xls是用樓主原來程式碼開啟的名稱
多了"Microsoft Excel - "

解決辦法是直接Workbooks.Open (fileopen),前面加不要app(因app代表Application物件)


降才可以使用後續的vba指令。
謝謝大家 我目前這問題已經解決 我的方法如下
Dim FilNm As String
FilNm = Application.GetOpenFilename("報表 (*.dbf), *.dbf")
If FilNm <> "False" Then Workbooks.Open FilNm

ActiveWorkbook.Sheets(1).Columns(1).Range("B:B").Copy ThisWorkbook.Sheets("資料庫").Columns(1).Range("A:A")


這樣就可以了!
目前都解決的 感謝 感謝!
改天再來研究該如何用VB寫個執行檔 執行這些vba的程式
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?