返回列表 上一主題 發帖

[發問] 關於自動貼上連結至另一個檔案並自動插入超連結

Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Hyperlinks.Add
修改過
Workbooks("客戶明細-業務專用.xlsm").Sheets([Q3]).Hyperlinks.Add
這邊要如何轉成變數呢? 上方都換過但還是無法執行~
還是說日期 = Format([B3], "M""月")
我只要再sheets(日期) 這樣嗎?

TOP

回復 19# starry1314

Q1.1.Sheets("五月")<請問關於妳所說的變數
假如在個別客戶明細(Q3)做一個清單 一~十二月,那有什麼指令可以讓"五月" 去讀取那個位置變成動態呢?  cells(Q3) 這樣嗎?

回答上面這問題:
A1.之前我有做一個類似的檔案,但因為考慮使用時間的問題(不用每年的一開始就修改程式或更改檔案名稱以及很多相關的問題),所以我改用資料庫的做法,把像你月份的工作表改成只有用一個資料庫的工作表
然後再做一個可以查詢的工作表來查詢相關的目的,當然我在資料庫有放所謂年度月份的欄位,以利查詢用。
所以像Sheets("五月")做變數,則是要牽涉到使用的目的才能下方法,而我做的巨集是用工作表事件來代替你的按鈕,而且把月份的數字改成阿拉伯數字,這樣則可以用你日期欄來抓取月份來做變數例如
日期 = Format([B3], "M""月")

A2.若在Q3做清單這也是一個好方法,其變數直指它就可以如:xxx=Range("Q3") 或xxx=[Q3]<<這裡要用中括號(你檔案中的第一個巨集用小括號就不對了),又或是xxx=Cells(3,"Q"),"不是cells(Q3)"

TOP

不會啦~是我才不好意思!一直麻煩你
先慢慢測試再理解囉

TOP

回復 23# lpk187

SubAddress:=sht & "!Q2" 再修改     

TOP

回復 22# starry1314


    不好意思,上班中,不能即時回應,也沒好好的檢查程序是否錯誤!抱歉
  1. Sub 貼上資料至_業務管理TEST自動往下貼一行()
  2. '
  3. ' 貼上資料至_業務管理 巨集

  4.     'Range("A3:P3").Copy
  5.     sht = ActiveSheet.Name
  6.     arr = Range("A3:P3")
  7.     本檔案的路徑 = ThisWorkbook.Path & "\"
  8.     本檔案的檔名 = ThisWorkbook.Name
  9.     日期 = Format([B3], "M""月")
  10.     Workbooks.Open (ThisWorkbook.Path & "\" & "客戶明細-業務專用.xlsm") '這裡的"複製的路徑"是要可以開"客戶明細-業務專用.xlsm"的路徑
  11.     Windows("客戶明細-業務專用.xlsm").Activate
  12.    
  13.     EndRow = Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Cells(Rows.Count, "B").End(xlUp).Row + 1 '所有使用中的列數+1
  14.     'Cells(EndRow, "B").PasteSpecial Paste:=xlPasteValues '原本的程序
  15.     Cells(EndRow, "B").Resize(1, UBound(arr, 2)) = Application.Transpose(Application.Transpose(arr)) '目前使用中的分頁,的最下方空白列貼上值
  16.     'ActiveSheet.Paste Link:=True
  17.     Workbooks("客戶明細-業務專用.xlsm").Activate
  18.     'ActiveSheet.Hyperlinks.Add Anchor:=Cells(EndRow, "B"), Address:=ThisWorkbook.Name, SubAddress:=sht'原本的程序
  19.    
  20.     Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Hyperlinks.Add Anchor:=Cells(EndRow, "B"), Address:=本檔案的檔名, SubAddress:=sht '變更後的 '這裡的本檔案的路徑則是這個檔案所在的路徑
  21.     Workbooks("客戶明細-業務專用.xlsm").Close True

  22. End Sub
複製代碼

TOP

回復 21# lpk187


    不好意思~
Windows("客戶明細-業務專用.xlsm").Hyperlinks.Add Anchor:=Cells(EndRow, "B"), Address:=本檔案的路徑 & ThisWorkbook.Name, SubAddress:=sht變更後的 '這裡的本檔案的路徑則是這個檔案所在的路徑

此欄一直跑出偵錯,但在前一個尚未修正過的程式 這樣的寫法是正常使用呢

TOP

本帖最後由 lpk187 於 2015-5-6 09:30 編輯

回復 20# starry1314
  1. Sub 貼上資料至_業務管理TEST自動往下貼一行()
  2. '
  3. ' 貼上資料至_業務管理 巨集

  4.     'Range("A3:P3").Copy
  5.     sht = ActiveSheet.Name
  6.     arr = Range("A3:P3")
  7.     本檔案的路徑 = ThisWorkbook.Path & "\"
  8.     本檔案的檔名 = ThisWorkbook.Name
  9.    
  10.     Workbooks.Open ("複製的路徑" & "\" & "客戶明細-業務專用.xlsm") '這裡的"複製的路徑"是要可以開"客戶明細-業務專用.xlsm"的路徑
  11.     Windows("客戶明細-業務專用.xlsm").Activate
  12.     AA = Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Cells(Rows.Count, "B").End(xlUp).Address
  13.     EndRow = Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Cells(Rows.Count, "B").End(xlUp).Row + 1 '所有使用中的列數+1
  14.     'Cells(EndRow, "B").PasteSpecial Paste:=xlPasteValues '原本的程序
  15.     Cells(EndRow, "B").Resize(1, UBound(arr, 2)) = Application.Transpose(Application.Transpose(arr)) '目前使用中的分頁,的最下方空白列貼上值
  16.     'ActiveSheet.Paste Link:=True
  17.     Windows("客戶明細-業務專用.xlsm").Activate
  18.     'ActiveSheet.Hyperlinks.Add Anchor:=Cells(EndRow, "B"), Address:=ThisWorkbook.Name, SubAddress:=sht'原本的程序
  19.     Windows("客戶明細-業務專用.xlsm").Hyperlinks.Add Anchor:=Cells(EndRow, "B"), Address:=本檔案的路徑 & ThisWorkbook.Name, SubAddress:=sht變更後的 '這裡的本檔案的路徑則是這個檔案所在的路徑
  20.     Workbooks("客戶明細-業務專用.xlsm").Close True

  21. End Sub
複製代碼
上面是我有修改的程序,其中有解釋路徑

TOP

回復 18# lpk187


點擊超連結後   參照路徑錯誤的問題知道哪邊出問題了
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ThisWorkbook.Path & "\" & ThisWorkbook.Name, SubAddress:=ActiveSheet.Name

SubAddress:=ActiveSheet.Name     '導致業務明細的超連結會讀取業務明細的目前工作頁名稱,  變成 個別客戶明細(超連結)-五月'

TOP

1.Sheets("五月")<請問關於妳所說的變數
假如在個別客戶明細(Q3)做一個清單 一~十二月,那有什麼指令可以讓"五月" 去讀取那個位置變成動態呢?  cells(Q3) 這樣嗎?

Workbooks.Open ("複製的路徑" & "\" & "客戶明細-業務專用.xlsm")
因客戶明細-業務專用.xlsm會有好幾個業務的,如 \\..\..\..\..\業務專用   內有不同業務的資料夾,再下一層才會是客戶明細-業務專用.xlsm

所以可以用
Workbooks.Open (" \\..\..\..\..\業務專用" &"不同業務的資料夾(依O3內容的名稱變更)"& "\" & "客戶明細-業務專用.xlsm")

如業務專用(複製路徑)," &"業務-張,  "& "\" & "客戶明細-業務專用.xlsm"  像這樣可以達成嗎

TOP

回復 16# lpk187

語法錯誤應該是這樣才對
    EndRow = Workbooks("客戶明細-業務專用.xlsm").Sheets("五月").Cells(Rows.Count, "B").End(xlUp).Row + 1 '所有使用中的列數+1

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題