返回列表 上一主題 發帖

[發問] 儲存格索引值

回復 1# PJChen

我也不是很了解檔案的關聯性
所以將sh改為字串,就可以指向所設定名稱的sheet

Sub 測試()
Dim Wb As Workbook, sh As String, x As Range
'   Set Wb = Workbooks(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B1").Value) '儲存格的值為檔案名稱
    sh = Worksheets("VBA").Range("B2") '儲存格的值為工作表名稱
    Worksheets(sh).Activate
    With Worksheets(sh)
    Set x = .Range("B4")
    x = Worksheets("VBA").Range("B4").Value '指定1.sheet日期
    End With
End Sub

TOP

回復 1# PJChen

Set Sh = Wb.Worksheets(Worksheets("VBA").Range("B2").Value) '儲存格的值為工作表名稱

改為
Set Sh = Wb.Worksheets(Worksheets("VBA").Range("B2").Text) '儲存格的值為工作表名稱

TOP

回復 5# PJChen

功力沒很好,請試試
資料夾設定為A,如要變動請自行修改(含儲存路徑)

Sub 測試()
Dim Wb As Workbook, Sh As Worksheet, x As Range, Source1 As String
    Source1 = Workbooks("Macro.xlsm").Worksheets("VBA").Range("B1").Value '要開啟的檔案名稱
    Workbooks.Open "c:\A\" & Source1 & ".xlsx" '開啟要寫入的檔案   
    Workbooks("Macro.xlsm").Activate   
    Set Wb = Workbooks(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B1").Value) '儲存格的值為檔案名稱
    Set Sh = Wb.Worksheets(Worksheets("VBA").Range("B2").Text)  '儲存格的值為工作表名稱,因為工作表名稱是數字,會被當成"數第N個工作表",還無法解決,以加1先暫用      
    Sh.Activate
    With Sh
    Set x = Sh.Range(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B5").Text) '指定寫入的儲存格為放在那個欄位
     x = Workbooks("Macro.xlsm").Worksheets("VBA").Range("B4").Text '寫人的值放在那個欄位
    End With
    Workbooks(Dir("C:\A\" & Source1 & ".xlsx")).Close True '關閉並儲存寫入的檔案
End Sub

TOP

        靜思自在 : 人生沒有所有權,只有生命的使用權。
返回列表 上一主題