2016-07-12 3 views
-2

enter image description here Я хочу читать данные с двух листов, тогда как пользователь вводит только дату и после нажатия кнопки данные будут заполнены в листе.Я хочу прочитать данные из двух листов excel на один лист Excel с помощью кнопки VBA?

this is requirement that i want

Название Дата
Enter Неделя Дата начала "7/11/2016" (кнопка)

Название проекта-ID Название проекта Дата начала Дата окончания Sum Sum * 20

Это фактический формат требования.

+0

Sub searchdata() дим erow As String Dim WS As Worksheet Тусклого lastrow As String дим рассчитывать As Integer lastrow = Листы ("Config_InputAllocation_Weekly"). Клетки (Ряды .count, 1) .End (xlUp) .Row Если листы («Config_InputAllocation_Weekly»). Ячейки (x, 3) = Sheet1.Range («B2») Затем Sheet1.Range («A5») = Листы («Config_InputAllocation_Weekly»). Ячейки (x, 3) Sheet1.Range («B5») = Таблицы («Config_InputAllocation_Weekly»). Ячейки (x, 7) Sheet1.Range («C5») = Таблицы («Config_InputAllocation_Weekly»). Ячейки (x, 8) End If End Sub –

+0

Может ли кто-нибудь помочь мне в решении этой проблемы? –

ответ

0

в вашей линии

Set objsheet = bjExcel.ActiveWorkbook.Worksheets("Config_InputAllocation_Weekly") 
Set objsheet2 = objExcel.ActiveWorkbook.Worksheets("Config_Project") 

вы пытаетесь установить оба листа активны, что не возможно. Будет только один активный лист. Но вам не нужно активировать их. Используйте следующую технику:

Dim objExcel as Object 
Set objExcel = CreateObject("Excel.Application") 

Dim myWb as workbook, myws1 as worksheet, myWs2 as worksheet 
Set myWb = objExcel.Workbooks.Open("C:\Users\ABC\Documents\NSL\Automation Macro\NSL_DM_Tracker.xlsm") 
Set myWs1 = myWb.Worksheets("Config_InputAllocation_Weekly") 
Set myWs2 = myWb.Worksheets("Config_Project") 

Тогда вы можете легко вызвать данные из обоих листов, являются ли они активными или нет:

Msgbox myWs1.Cells(1,1).value 
Msgbox myWs2.Cells(1,1).value 

Тогда другая проблема заключается в том, что вы определили Sub searchdata(), но его не вызывается внутри вашего CommandButton1_Click() Sub.

Кроме того использовать Option Explicit установку, то есть, поставить эту строку в самой верхней части кода:

Option Explicit 

Это поможет вам отладки кода. И последнее, но не менее важное: в вашем Sub searchdata() не указаны рабочие листы. Таким образом, он не будет знать, какой из них (myWs1 или myWs2) использовать и когда.

удачи, Виктора