Board logo

標題: [發問] 關於用VBA開啟別的檔案後要如何回到原視窗呢? [打印本頁]

作者: starry1314    時間: 2015-6-12 16:38     標題: 關於用VBA開啟別的檔案後要如何回到原視窗呢?

本帖最後由 starry1314 於 2015-6-12 16:46 編輯

請問要怎麼修改呢
還是可以先用變數 讀取開啟檔案前的視窗名稱,
EX :
aa = ThisWorkbook.FullName
   

workbooks.Open ("\\Boss-pc\公用磁區\數據\資料庫\105-客戶明細.xlsm")  
ActiveWorkbook.Sheets(aa).Select  但說無法識別...


Sub 貼上資料()
'
    workbooks.Open ("\\Boss-pc\公用磁區\數據\資料庫\105-客戶明細.xlsm")
    ActiveWorkbook.Sheets("收款跟催").Select '回到出餐單  會失敗改用thisworkbook也是會失敗

    Range("A3").Select '選取要複製的資料行
    Dim lSourceRow As Long, lTargetRow As Long
    Dim wsTarget As Worksheet


    With ActiveSheet
        lSourceRow = Selection(1).Row  '被點擊的該按鈕行數
       ' If .Cells(lSourceRow, "C").Text = vbNullString Then MsgBox "日期欄無資料,無法判斷貼上月份": Exit Sub
        'Set wsTarget = Workbooks("客戶明細(總表).xlsm").Sheets(GetMonthStr(.Cells(lSourceRow, "C"))) '日期判斷要貼上的工作表
        Set wsTarget = workbooks("105-客戶明細(總表).xlsm").Sheets("客戶明細")
        Windows("105-客戶明細(總表).xlsm").Activate
        Sheets("客戶明細").Select
        lTargetRow = wsTarget.Cells(Rows.Count, "B").End(xlUp).Row + 1 '要貼上的位置
        Application.ScreenUpdating = False
        .Range(.Cells(lSourceRow, "A"), .Cells(lSourceRow, "AR")).Copy '複製A欄到AR欄的資料
        wsTarget.Cells(lTargetRow, "B").PasteSpecial Paste:=xlPasteValues '在B欄開始貼上
        wsTarget.Paste Link:=True '貼上連結
        Application.ScreenUpdating = True '貼上連結
    End With
    '將檔案做超連結至A攔
    With wsTarget
        .Hyperlinks.Add Anchor:=.Cells(lTargetRow, "B"), _
                        Address:=ThisWorkbook.FullName
                       'SubAddress:=ThisWorkbook.Sheets("出餐單").Name & "!" & Rows(lSourceRow).Address, _
                     TextToDisplay:=.Cells(lTargetRow, "b").Text
         
         .Hyperlinks.Add Anchor:=.Cells(lTargetRow, "AT"), _
                        Address:=ThisWorkbook.FullName
                       ' SubAddress:=.Name  '& "!" & Rows(lSourceRow).Address _
                     'TextToDisplay:=.Cells(lTargetRow, "ao").Text

    End With

End Sub
作者: starry1314    時間: 2015-6-12 17:03

本帖最後由 starry1314 於 2015-6-12 17:05 編輯

氣死我.........
想半天想不出來~結果一PO論壇靈感馬上來

aa = ThisWorkbook.Name
workbooks.Open ("\\Boss-pc\公用磁區\數據\資料庫\105-客戶明細.xlsm")  
Windows(aa).Activate

即可回原本巨集開檔案前視窗




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)