我不確定這是否可行,但這是我沒有找到的答案。單元格中表格的動態引用 - VBA
我創建了一個模板工作簿Schedule.xls
,它將由不同的人填寫,比如personA
,personB
和personC
。我需要從每個工作簿中提取相同的範圍,方法是將其複製並粘貼到主文件Master.xls
中,以便我可以將每個人的信息都收集到該主簿中。
這個Master.xls
將會有和填充Schedule.xls
的人一樣多的紙張。
例如,讓我們留在那3個人:personA
,personB
和personC
。
一旦他們產生他們的日程安排,我想獲得這些信息,並將其複製到Master.xls
,但在不同的表名爲personA
,personB
和personC
。
我想在Schedule.xls
設置一個細胞要做到這一點,說A1
,在那裏人們可以選擇personA
,personB
和personC
之間的值。
這樣我就可以在Master.xls
中爲工作表創建一個動態參考。其中宏將粘貼信息。
`Range("B2.D5").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\My Documents\Master.xlsx"
Sheets(*REFERENCE*).Select
Range("B2").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close`
我應該寫的,而不是參考怎麼設置我想要寫在紙張?
在此先感謝。
我會做另一種方式,當personX在* Schedule.xls *中完成它們的部分時,讓它更新* Master.xls *(完整的UNC路徑)。 * Master.xls *將具有基本模板表,如果工作表** personX **不在主表中,則製作該表的副本並將其重命名爲** personX **,然後將期望範圍從Schedule到它。但是,這假定人有寫訪問Master.xls。 – PatricK
@mmarinr這是回答你的問題,不知道它解決了你的代碼問題。使用'表格(範圍(「A1」)。值)。選擇'。但是,最好避免使用'Select','Selection'和'ActiveSheet' –
我會在'Schedule.xls'文件中使用'ComboBox'。然後在你的'Workbook_Open'中,用你的'Master.xls'中的所有表單填充組合框。如果沒有找到他們的名字,他們可以輸入他們的名字。然後在'Schedule.xls'的'Workbook_BeforeClose'中,更新'Master.xls'。如果用戶不存在工作表,請添加一個工作表然後添加信息。同樣作爲@ShaiRado推薦的,儘量不要使用諸如「Select」之類的東西。看看如何使用'Worksheet'和其他excel對象 – Zac