2016-07-12 11 views
-2

enter image description here Ich möchte Daten aus zwei Blättern lesen, während Benutzer nur Datum eingeben und nach dem Klicken auf Schaltfläche Daten in Blatt gefüllt werden.Ich möchte Daten von zwei Excel-Blättern zu einem Excel-Blatt mit Schaltfläche mit VBA lesen?

this is requirement that i want

Titel Datum
eingeben Woche Startdatum "2016.07.11" (Button)

Namen Projekt-ID Projektname Projektstart Projektende Sum Sum * 20

Dies ist das tatsächliche Format der Anforderung.

+0

Sub search() Dim erow As String Dim ws As Worksheet Dim LastRow As String Dim LastRow = Sheets ("Config_InputAllocation_Weekly") As Integer zählen. Die Zellen (Zeilen .count, 1) .End (xlUp) .Row Wenn Sheets ("Config_InputAllocation_Weekly"). Zellen (x, 3) = Sheet1.Range ("B2") Dann Sheet1.Range ("A5") = Sheets ("Config_InputAllocation_Weekly"). Zellen (x, 3) Sheet1.Range ("B5") = Sheets ("Config_InputAllocation_Weekly"). Zellen (x, 7) Sheet1.Range ("C5") = Sheets ("Config_InputAllocation_Weekly"). Cells (x, 8) End If End Sub –

+0

Kann mir jemand für dieses Problem helfen? –

Antwort

0

in Ihrer Linie

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

Sie versuchen, beide Blätter aktiv zu setzen, was nicht möglich ist. Es gibt nur ein aktives Blatt. Sie müssen sie jedoch nicht aktivieren. Verwenden Sie die folgende Technik:

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") 

Dann können Sie ganz einfach die Daten aus beiden Blätter nennen, ob sie aktiv sind oder nicht:

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

Dann das andere Problem ist, dass Sie einen Sub searchdata() definiert haben, aber es wird nicht innerhalb Ihrer CommandButton1_Click() Sub aufgerufen.

verwenden Darüber hinaus explizite Einstellung Option, das heißt, setzen Sie diese Zeile an der Spitze des Codes:

Option Explicit 

Dies wird Ihnen helfen, Ihren Code zu debuggen. Last but not least, in Ihrem Sub searchdata() sind keine Arbeitsblätter definiert. So wird es nicht wissen, welches (myWs1 oder myWs2) zu verwenden ist und wann.

Good Luck, Viktor

Verwandte Themen