Du kan stöta på problem när du försöker att programmässigt skriva till en öppen Excel-kalkylblad , speciellt om du öppnar det en andra gång . Excel stöder inte öppna en annan arbetsbok med samma namn , även om det är lagrat i en annan väg . Med Visual Basic for Applications , eller VBA , kan du använda objektet Window Interface växla aktiva Windows i stället för att öppna kalkylbladet för att överföra data . Använda Window objektet kan också förbättra dataöverföringshastighet eftersom du inte behöver öppna kalkylbladet flera gånger för att skriva till den . Instruktioner
1
Starta Excel och typ " Detta är det öppna bladet " i " A1 ". Spara arbetsboken till " C : \\ Temp \\ " som " . Sheet1.xlsx "
2
Starta en ny session av Excel , och typ " Data A " i " A1 ", " data B " i " B1 " och " uppgifter c " i " C1 ". Klicka på " Utvecklare " fliken , och klicka på " Visual Basic " för att starta Visual Basic Editor Window . Klicka på " Infoga " -menyn , och klicka på " Modul . " Skriv följande kod för att skapa ett nytt förfarande : " . Ange "
Private Sub transferDataToSheet ( ) katalog
Press
3
Kopiera och klistra in följande att skapa tre variabler att hålla cell data:
Dim clmnA As String
Dim clmnB As String
Dim clmnC As String
4
Copy och klistra in följande kod för att spara värdena i cellerna A1 , B1 och C1 i variabler : . .
med kalkylblad ( " Blad1 " ) katalog
Range ( " A1 " ) Välj
clmnA = ActiveCell.Value
. Range ( " B1 " ) . Välj
clmnB = ActiveCell.Value
. Range ( " C1 " ) . Välj
clmnC = ActiveCell.Value
End With
5
Kopiera och klistra in följande för att aktivera det öppna kalkylbladet ( Sheet1.xlsx ) :
. Windows ( " Blad1 " ) Aktivera
6
Kopiera och klistra in följande för att överföra data från din aktuella kalkylbladet till det öppna kalkylbladet :
med kalkylblad ( " Blad1 " )
. Range ( " A2 " ) . Välj
Selection.Value = clmnA
. Range ( " B2 " ) . Välj
Selection.Value = clmnB
. Range ( " C2 " ) . Välj
Selection.Value = clmnC
End With
7
Tryck " F5 " för att kör din procedur för att överföra data till det öppna kalkylbladet .