Câu hỏi Cách sao chép phạm vi từ sổ làm việc không hoạt động


Tôi chỉ đơn giản là cố gắng sao chép và dán giữa các sổ làm việc trong VBA mà không cần kích hoạt mỗi sổ làm việc mà tôi muốn thực hiện hành động.

Mã của tôi lưu trữ sổ làm việc và trang tính đang hoạt động trong các biến trước khi tạo sổ làm việc mới sau đó ô A1 từ sổ làm việc ban đầu được cho là được sao chép vào sổ làm việc mới được tạo.

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As Worksheet

Set pLWB = ActiveWorkbook
Set pLWS = ActiveSheet

Workbooks.Add

pLWB.pLWS.range("A1").copy

End Sub

Bất kỳ ý tưởng mà tôi đang đi sai? Tôi đã ấn tượng rằng bạn có thể tham khảo các tế bào rất cụ thể thông qua workbooks.worksheets.range nhưng ngay cả khi tôi đang gõ, menu intellisense không hiển thị pLWS Như là một lựa chọn.

cảm ơn bạn trước vì đã dành thời gian.


0
2017-08-19 21:32


gốc


Bạn cần mở nguồn WB - Raystafarian
@Raystafarian Bạn có nghĩa là mở hoặc hoạt động? Cả hai sổ làm việc đều mở. - M.Hesse
Điều đó không được bao gồm trong mã của bạn. Tôi không biết các biến nên là gì hoặc active - Raystafarian
@Raystafarian Apologies, tôi đã có một bảng tính đang mở đang hoạt động. Sổ làm việc và trang tính hoạt động này được lưu trữ trong các biến pL sau đó một sổ làm việc mới được tạo. - M.Hesse
Vui lòng bao gồm tất cả mã - Raystafarian


Các câu trả lời:


Bạn cần phải tham khảo bảng tính khác nhau - đó chỉ là một trong những điều đó.

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As Worksheet

Set pLWB = ActiveWorkbook
Set pLWS = pLWB.ActiveSheet

Workbooks.Add

pLWS.Range("A1").Copy

End Sub

Ngoài ra công trình này -

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As String

Set pLWB = ActiveWorkbook
 pLWS = ActiveSheet.Name

'Workbooks.Add

pLWB.Sheets(pLWS).Range("A1").Copy

End Sub

1
2017-08-20 18:17