Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Nybörjare VBA

Postades av 2013-04-18 04:05:54 - Roland Andersson, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 4216 personer

Hej
Varför fungerar inte den här koden Ngn som vill rätta till

Private Sub ComboBox1_Change()
Select Case ComboBox1
Case "A"
Workbooks(Experiment2).Sheet1.Range(A1) = Workbooks(Ezperiment3).Sheet1.Range(A1)
'Workbooks(Experiment2).Sheet1.Cells(1, 1) = Workbooks(Ezperiment3).Sheet1.Cells(1, 1)
End Select
End Sub

Private Sub UserForm_Activate()
ComboBox1.AddItem "A"
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
End Sub


Svara

Sv: Nybörjare VBA

Postades av 2013-04-18 08:01:18 - Tomas Granlund

För att öka chansen att få de svar du är ute efter så snabbt och korrekt som möjligt skulle jag råda dig att (utöver källkoden, förstås) även ta med följande information:

* Går koden att köra/kompilera? Om inte, vilket felmeddelande fås?
* När koden körs, vad händer som du INTE vill ska hända?
* När koden körs, vad händer inte som du VILL ska hända?

Annars är det lite som att ringa snickaren och säga "Mitt hus är trasigt, kom och fixa!", när problemet i själva verkat är att det droppar från handfatet i badrummet :)


Svara

Sv:Nybörjare VBA

Postades av 2013-04-18 08:31:20 - Roland Andersson

Jag får felmeddelande
Runtime error'9'
Subscript out of range
Ingenting mer händer
Jag vill ju bara kopiera data från en arbetsbok till en annan.automatiskt.


Svara

Sv: Nybörjare VBA

Postades av 2013-04-18 14:32:02 - Tomas Granlund

Vad har variablerna Experiment2 resp. Ezperiment3 för värde? Är dessa arbetsböcker öppnade?

Case "A":
    Dim sourcebook, targetbook As Workbook
    If "" = Experiment2 Then
        MsgBox ("Experiment2 saknar värde")
        Return
    ElseIf "" = Ezperiment3 Then
        MsgBox ("Ezperiment3 saknar värde")
        Return
    End If
    On Error Resume Next
    Set sourcebook = Workbooks(Experiment2)
    Set targetbook = Workbooks(Ezperiment3)
    If sourcebook Is Nothing Then
        MsgBox (Experiment2 & " är inte öppen")
        Return
    ElseIf targetbook Is Nothing Then
        MsgBox (Ezperiment3 & " är inte öppen")
        Return
    End If


Svara

Sv:Nybörjare VBA

Postades av 2013-04-19 00:57:58 - Roland Andersson

Workbooken Experiment2 är öppen Det är där jag har comboboxen som jag laddar med värden vid workbook .activate T.ex. A,B,C På det andra kalkylbladet Ezperiment3 kan det ju stå t.ex. 1 i cell A1 2 i cell B1 3 i cell C1När jag väljer A i kombobxen ska Ezperiment3 öppnas och värdet iA1 kopieras till cell A1 i Experiment2Detta är bara ett exempel som ska visa principen celler och värden kan naturligtvis väljas vad som helst


Svara

Sv: Nybörjare VBA

Postades av 2013-04-19 07:34:52 - Sven Åke Persson

Det är alltid lurigt att ha kod i Change event.
Du hamnar lätt i okontrollerad loop.

Tycker du skall testa om det funkar i
Private Sub ComboBox1_Click()

Dvs klicka på någon av val möjligheterna A B C
Finns felet kvar ?

Sen för tydlighetens skull vill jag ha det så här
Select Case ComboBox1.Text


Svara

Sv: Nybörjare VBA

Postades av 2013-04-19 08:40:19 - Tomas Granlund

Ett bra tips är att ange

Option Explicit

överst i din vb-kod.

Då kommer du få felmeddelandet "Variable not defined" i det här läget, eftersom du inte deklarerat variablerna Experiment2/Ezperiment3 som du försöker använda om uttrycket
Workbooks(Experiment2). 


För att komma åt arbetsboken som *heter* Experiment2 behöver du göra
Workbooks("Experiment2")


Svara

Sv: Nybörjare VBA

Postades av 2013-04-25 11:59:41 - Sven Åke Persson

Var tog Roland vägen.
Hur gick det sedan ! ?

Frustrerande när det inte blir FeedBack på tråden som startats. :-(


Svara

Sv:Nybörjare VBA

Postades av 2013-04-26 02:36:12 - Roland Andersson

Ja jag skrev ju ett långt svar nyss När jag skulle skicka det så var det plötsligt borta Ingen har tyvärr lyckats åstadkomma en kod som fungerarVad jag vill ha är följande

1 En Workbook med följande cellvärden inlagda A1=1 A2=2 A3=3
2 Spara och stäng Workbooken
3Öppna en ny Workbook och lägg in en kombobox med tre värden A.B,C

4 När man väljer A i komboboxen ska värdet i A1 första workbooken läggas in i A1 andra workbooken
När man väljer B i komboboxen ska värdet i A2 första workbooken läggas in i A1andra workbooken
När man väljer C i komboboxen ska värdet i A3 första workbooken läggas in i A1 andra workbooken

Önskar en kod utan felmeddelanden som ju är omöjliga att tolka för en amatör Ange också om ngra inställningar behöver ändras
Är tacksam om ngn lyckas med detta


Svara

Sv: Nybörjare VBA

Postades av 2013-04-26 13:58:32 - Thommy Lantz


I Workbook open eventet

Private Sub Workbook_Open()

With Sheets("Blad1")
    .ComboBox1.AddItem "A"
    .ComboBox1.AddItem "B"
    .ComboBox1.AddItem "C"
End With

End Sub



I en modul i samma arbetsbok
WorkbookIsOpen kollar om arbetsboken är öppen
FileExists kollar om filen existerar

'The WorkbookIsOpen Function
Public Function WorkbookIsOpen(wbname) As Boolean
'   Returns TRUE if the workbook is open
    Dim x As Workbook
    On Error Resume Next
    Set x = Workbooks(wbname)
    If Err = 0 Then WorkbookIsOpen = True Else: WorkbookIsOpen = False
End Function

'The FileExists Function
Public Function FileExists(fname) As Boolean
'   Returns TRUE if the file exists
    Dim x      As String
    x = Dir(fname)
    If x <> "" Then FileExists = True _
                                 Else FileExists = False
End Function


I combobox change eventet på bladet med comboboxen

Private Sub ComboBox1_Change()
    
    Dim sourcebook As Workbook
    Dim targetbook As Workbook
    
    
    ' kollar om arbetsboken är öppen
    If Not WorkbookIsOpen(ThisWorkbook.Path & "\Ezperiment3.xlsx") Then
        ' kollar om filern existerar
        If FileExists(ThisWorkbook.Path & "\Ezperiment3.xlsx") Then
            ' öppnar arbetsboken
            Workbooks.Open (ThisWorkbook.Path & "\Ezperiment3.xlsx")
            ThisWorkbook.Activate
        Else
            MsgBox ("Arbetsboken Ezperiment3.xlsx finns inte")
            Exit Sub
        End If
    End If
    
    Set sourcebook = Workbooks(ThisWorkbook.Name)
    Set targetbook = Workbooks("Ezperiment3.xlsx")

    Select Case ComboBox1.Text
        Case "A"
        sourcebook.Sheets("Blad1").Range("A1").Value = _
                    targetbook.Sheets("Blad1").Range("A1").Value
        Case "B"
        sourcebook.Sheets("Blad1").Range("A2").Value = _
                    targetbook.Sheets("Blad1").Range("A2").Value
        Case "C"
        sourcebook.Sheets("Blad1").Range("A3").Value = _
                    targetbook.Sheets("Blad1").Range("A3").Value
    End Select
    
    ' stänger arbetsboken
   Workbooks("Ezperiment3.xlsx").Close savechanges:=False
   

End Sub


Svara

Sv:Nybörjare VBA

Postades av 2013-04-27 11:08:33 - Roland Andersson

Tack Thommy äntligen ngnting som fungerar utan felmeddelande Jag behövde bara ändra blad till Sheet eftersom jag har engelska versionen Jag kommer att ha stor användning för detta i mina tekniska program då jag måste hämta en massa data från exceltabeller Jag förstår inte allt men det spelar ingen roll


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 866
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies