返回列表 上一主題 發帖

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

回復 52# lpk187


了解!因程式碼是放在.ThisWorkbook.Sheets("出餐單")所以讀取的資料是正確的,
目前想請問 =或是copy 都是複製值   可以改成什麼讓他貼上的是連結呢?

ActiveSheet.Paste Link:=True    <--原本貼上連結的方式 

   目前修正為
  1.     Sheets("數據").Select
  2.     Range("B22").Select
  3.     Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
  4.     Sheets("快速輸入").Select
  5.     Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1").Value
  6.     Range("C3") = ThisWorkbook.Sheets("出餐單").Range("C4").Value
  7.     Range("D3") = ThisWorkbook.Sheets("出餐單").Range("V1").Value
  8.     Range("B4") = ThisWorkbook.Sheets("出餐單").Range("X3").Value
  9.     Range("B5") = ThisWorkbook.Sheets("出餐單").Range("E1").Value
  10. End Sub
複製代碼

TOP

回復 55# starry1314
  1. Option Explicit
  2. Sub EX()
  3.     Dim AR(1 To 2) As Integer
  4.     'Integer 變數係以範圍為 -32,768 到 32,767 之 16 位元 (2 個位元組) 數字的形式儲存
  5.     AR(1) = 5
  6.     AR(2) = 15
  7.     AR(2) = "w15"   '<- 資料型態不對 已指定資料型態所以錯誤產生了
  8. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 51# GBKEE

感謝版主~這個視窗我有執行出來!但在形態下方那個紅框,不懂要怎麼了解涵義! 我先找其他的程式碼來看看差異性在哪好了

TOP

回復 53# lpk187


    了解~所以要用區域變數視窗來觀看就是要先給指令一個變數才有辦法一個一個觀看執行結果囉|?
如 AA=ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value'
先來了解看看~

TOP

回復 50# starry1314


    版主出來回複了。不過我再補充一下你因為不知道你所輸入的值是否對錯可以用變數來觀看
也是說,以Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value來說
可以用
AA=ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value'來看你的程式碼是右有輸入錯誤再列下面這行
你可以在區域變數視窗中明白的看出AA這個變數的變化了
Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value
然後再用一個變數來觀看Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2")輸入對不對依此法類推,就可以很清楚的了解怎麼來怎麼去了
還有 ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value的"H1:I1"是合併儲存格的話可以只用"H1就可以了例如"ThisWorkbook.Sheets("出餐單").Range("H1").Value

TOP

回復 49# starry1314


    我先回複這問題
Sheets("快速輸入").Select"  '因為這裡已選取Sheets("快速輸入")這個工作表所以下面不能這樣寫,ThisWorkbook.Sheets("出餐單")是程式碼所在的地方,除非你的程式碼是放在.ThisWorkbook.Sheets("出餐單")這個工作表否則不能這樣寫
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value
我假設你的程式碼放在ThisWorkbook.Sheets("出餐單")這裡,而你先又做了Sheets("快速輸入").Select,你的程式可以簡寫成   Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value
若是沒做Sheets("快速輸入").Select選取的話,也就是畫面是停留在ThisWorkbook.Sheets("出餐單")這個工作表中則可以簡寫成Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2") =.Range("H1:I1").Value

TOP

回復 50# starry1314

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 starry1314 於 2015-5-11 00:59 編輯

回復 47# lpk187


另想請問區域變數視窗要怎麼看呢?
打開後按F8逐行測試
運算式  值   型態
不太懂怎麼利用以上三項而來了解指令的意義
是以運算式或型態去說明尋找嗎? 用運算式找不到,以形態那找出來的又不太搭

像wsTarget <這是自定義名稱嗎?

TOP

回復 47# lpk187

目前我改寫成這樣...但要怎麼讓他貼上的是連結呢?
目前做法是最後在加上舊指令讓我需要的連結過來....

看了stillfish00大大發的 修改前29F→貼上值
                                           修改後44F→貼上連結.
差異有點大.....看得懂意思,但要自己變換就一頭霧水了[code]Sub 小餐單_S餐_自動輸入資料()
'
' 小餐單_S餐_自動輸入資料 巨集
'

'
    Sheets("數據").Select
    Range("B25").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Sheets("快速輸入").Select
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B2") = ThisWorkbook.Sheets("出餐單").Range("H1:I1").Value
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("C3") = ThisWorkbook.Sheets("出餐單").Range("C4:AI4").Value
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("D3") = ThisWorkbook.Sheets("出餐單").Range("V1:X1").Value
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B4") = ThisWorkbook.Sheets("出餐單").Range("X3:AI3").Value
    Workbooks("小餐單-S.xlsx").Sheets("快速輸入").Range("B5") = ThisWorkbook.Sheets("出餐單").Range("E1:F1").Value
   
   '替換值為連結
  ThisWorkbook.Sheets("出餐單").Activate
    Range("X3:AI3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("小餐單-s.xlsx").Activate
    Range("B4").Select
    ActiveSheet.Paste Link:=True
   
    End Sub

TOP

回復 46# starry1314

再以stillfish00大大的程式來說明ThisWorkbook.FullName的補充

    With wsTarget
        .Hyperlinks.Add Anchor:=.Cells(lTargetRow, "R"), _
                        Address:=ThisWorkbook.FullName, _
                        SubAddress:=ThisWorkbook.ActiveSheet.Name & "!" & Rows(lSourceRow).Address, _
                        TextToDisplay:=ThisWorkbook.FullName
        .Cells(lTargetRow, "R").HorizontalAlignment = xlLeft
    End With
上面程式中的 Address:=ThisWorkbook.FullName 的用途和上篇的 ThisWorkbook.Name 用途不一樣的地方
Address必須指出明確的路徑,所以必須使用 ThisWorkbook.FullName
若是使用 ThisWorkbook.Name 則必須加前面加上路徑 ,例如"D:\資料夾\" & ThisWorkbook.Name

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題