Board logo

標題: [發問] 初學不才,請問這如何簡化? [打印本頁]

作者: dakiu    時間: 2016-6-1 13:57     標題: 初學不才,請問這如何簡化?

各位老師好:

以下是我跨檔案依指定儲存格值而取的另一檔案儲存格值所寫,但是.........我要從F4......G4......H4.....一直做到Z4,RANGE()的變動不會寫,只能一直COPY做.....:'(

還請老師指導....感謝!

Public Sub test()
Range("f4:f9") = "='D:\Desktop\a\[" & [F2] & ".xlsm]b'!" & [$d4] & ""
Range("f10:f14") = "='D:\Desktop\a\[" & [F2] & ".xlsm]b'!" &  [$d10] & ""
Range("f15:f20") = "='D:\Desktop\a\[" & [F2] & ".xlsm]b'!" &  [$d15] & ""
Range("g4:g9") = "='D:\Desktop\a\[" & [G2] & ".xlsm]b'!" & [$d4] & ""
Range("g10:g14") = "='D:\Desktop\a\[" & [G2] & ".xlsm]b'!" & [$d10] & ""
Range("g15:g20") = "='D:\Desktop\a\[" & [G2] & ".xlsm]b'!" & [$d15] & ""

end sub
作者: ML089    時間: 2016-6-1 21:02

回復 1# dakiu

Public Sub test2()
    For Each xR In [F1:Z1]
        Range(xR(4), xR(9)) = "='D:\Desktop\a\[" & xR(2) & ".xlsm]b'!" & [$d4] & ""
        Range(xR(10), xR(14)) = "='D:\Desktop\a\[" & xR(2) & ".xlsm]b'!" & [$d10] & ""
        Range(xR(15), xR(20)) = "='D:\Desktop\a\[" & xR(2) & ".xlsm]b'!" & [$d15] & ""
    Next
End Sub
作者: luhpro    時間: 2016-6-1 22:02

本帖最後由 luhpro 於 2016-6-1 22:04 編輯

回復 1# dakiu
也可以寫這樣 :
  1. Public Sub test()
  2.   Dim iI%, iC%, iR%, vR()
  3.   
  4.   iC = 6
  5.   vR = Array(4, 10, 15, 21)
  6.   While iC <= 26
  7.     For iI = 0 To 2
  8.       iR = vR(iI)
  9.       Range(Cells(iR, iC), Cells(vR(iI + 1) - 1, iC)) = _
  10.           "'D:\Desktop\a\[" & Cells(2, iC) & ".xlsm]b'!" & Cells(iR, 4) & ""
  11.     Next
  12.     iC = iC + 1
  13.   Wend
  14. End Sub
複製代碼

作者: dakiu    時間: 2016-6-2 07:35

謝謝2位指導,會在細心研究學習了!感謝
作者: dakiu    時間: 2016-6-2 10:20

回復 2# ML089


    版大,能否再請教?
1)資料都放在同一資料夾,如果此資料夾移動後,這  'D:\Desktop\a\  能否自動變更位置?

再次求教,感謝!
作者: ML089    時間: 2016-6-2 13:34

回復 5# dakiu

可以使用 ThisWorkbook.Path 來替代

ThisWorkbook.Path  為程式檔案的目錄位置
作者: dakiu    時間: 2016-6-2 14:12

回復 6# ML089


    謝謝版大,解決了...感謝指導!!




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