返回列表 上一主題 發帖

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

回復 50# starry1314

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

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


    版主出來回複了。不過我再補充一下你因為不知道你所輸入的值是否對錯可以用變數來觀看
也是說,以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

回復 53# lpk187


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

TOP

回復 51# GBKEE

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

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

回復 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

回復 57# starry1314
  1. Option Explicit
  2. '模組頂端的 Dim 為這模組中程式可用的變數
  3. Dim WbSh(1 To 3) As Worksheet  '宣告變數型態 指定為工作表
  4. Sub Main()
  5.     Set WbSh(1) = ThisWorkbook.Sheets("數據")
  6.     'ThisWorkbook.Sheets("出餐單")如改為 "出餐單A"
  7.     Set WbSh(2) = ThisWorkbook.Sheets("出餐單") '在此改為 "出餐單A"了就可以了
  8.     Set WbSh(3) = ThisWorkbook.Sheets("快速輸入")
  9.     Call Ex
  10. End Sub
  11. Sub Ex()
  12.     WbSh(1).Range("B22").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
  13.     With WbSh(3) '不必 Select來 Select去
  14.         .Range("B2") = "=" & WbSh(2).Range("H1").Address(, , , 1)
  15.             '用公式連結
  16.         .Range("C3") = "=" & WbSh(2).Range("C4").Address(, , , 1)
  17.         .Range("D3") = "=" & WbSh(2).Range("V1").Address(, , , 1)
  18.         .Range("B4") = "=" & WbSh(2).Range("X3").Address(, , , 1)
  19.         .Range("B5") = "=" & WbSh(2).Range("E1").Address(, , , 1)
  20.     End With
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

呵呵呵!版主大大太強了,說真的當初我沒看到
ActiveSheet.Paste Link:=True這行
還再想怎麼回starry1314這個程式碼,版主大大就出手相助,這程式碼也讓我受易良多

TOP

回復 58# GBKEE


   版主大大~不好意思  使用F8逐行執行時
WbSh(1). 會跳出沒有定義這個SUB或function
但看上方MANI指令中就已有定義..請問是哪邊不對呢...
Sub Ex()

    WbSh(1).Range("B22").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    With WbSh(3) '不必 Select來 Select去
        .Range("B2") = "=" & WbSh(2).Range("H1").Address(, , , 1)
            '用公式連結
        .Range("C3") = "=" & WbSh(2).Range("C4").Address(, , , 1)
        .Range("D3") = "=" & WbSh(2).Range("V1").Address(, , , 1)
        .Range("B4") = "=" & WbSh(2).Range("X3").Address(, , , 1)
        .Range("B5") = "=" & WbSh(2).Range("E1").Address(, , , 1)
    End With
End Sub

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題