2009-11-26 18 views
8

Về cơ bản tôi cần thu thập một vài số liệu hợp lý từ một sổ làm việc khác (được tìm thấy và có thể được mở bởi UserForm, do đó vị trí và tên biến). Tôi cần phải sử dụng VBA cho điều này vì tôi cũng cần phải điền một biểu đồ với dữ liệu này. Tôi không muốn phải mở sổ làm việc khác để làm điều đó, nhưng nếu nó dễ dàng hơn thì OK.Làm cách nào để tôi tham chiếu đến sổ làm việc (mở hoặc đóng) khác và kéo lại giá trị, trong VBA? - Excel 2007

UserForm được thực hiện và hoạt động tốt, và tôi có mã tôi cần để điền vào biểu đồ, tuy nhiên tôi không thể lấy VBA để lấy lại dữ liệu từ sổ làm việc khác và gán nó cho các biến mà tôi cần nó.

Bất kỳ ý tưởng nào về cách tôi có thể yêu cầu VBA thực hiện việc này? Nó sẽ được đánh giá rất cao.

Xin cảm ơn,

Rob.

Trả lời

11

Bạn sẽ phải mở tệp theo cách này hay cách khác nếu bạn muốn truy cập dữ liệu trong đó. Rõ ràng, một cách là để mở nó trong trường hợp ứng dụng Excel của bạn, ví dụ như: -

(mã chưa được kiểm tra)

Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\myworkbook.xls") 

' now you can manipulate the data in the workbook anyway you want, e.g. ' 

Dim x As Variant 
x = wbk.Worksheets("Sheet1").Range("A6").Value 

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy 
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues) 
Application.CutCopyMode = False 

' etc ' 

Call wbk.Close(False) 

Một cách khác để làm điều đó sẽ được sử dụng các nhà cung cấp Excel ADODB để mở một kết nối đến tệp và sau đó sử dụng SQL để chọn dữ liệu từ trang tính bạn muốn, nhưng vì bạn vẫn làm việc từ bên trong Excel, tôi không tin có bất kỳ lý do nào để làm điều này thay vì chỉ cần mở sổ làm việc. Lưu ý rằng có các tham số tùy chọn cho phương thức Workbooks.Open() để mở sổ làm việc dưới dạng chỉ đọc, v.v.

Các vấn đề liên quan