webForumDet fria alternativet

Problem med Macro.

3 svar · 312 visningar · startad av colione

colioneMedlem sedan juni 20014 421 inlägg
#1

Jag föröker öppna upp en workbook samt kopiera innehållet med ett macro och det går bara fint. Sedan föröker jag pasta in det sheetet i ovanstående workbook i ett nytt sheet i min första workbook, men där tar det stopp. Jag får: Object sdoes not support this property or method.

Sub SysLatis()
Dim SourceWB As Workbook
Application.ScreenUpdating = False
    Sheets.Add Type:=xlWorksheet
    ActiveSheet.Name = "SysLathunden"
    Set MyWB = ActiveWorkbook
    Set SourceWB = Workbooks.Open("\\Slafs\SysLathund.xls", False, True)
    SourceWB.Worksheets("Systemlathunden").Columns("A:L").Copy
    SourceWB.Close (False)
   -> Här blir felet ActiveWorkbook.Worksheets("SysLathunden").Columns("A:L").Paste
    Set SourceWB = Nothing
    
Application.ScreenUpdating = True

End Sub

har provat att ändra till ThisWorkbook samty kört utan specifierade kolumner etc. Men får samma fel. Har ni några idéer?

MindreVetandeMedlem sedan okt. 2005371 inlägg
#2

du kan inte klistra in en kolumn, den moste infogas

MyWB.Worksheets("SysLathunden").Columns("A:L").Insert

colioneMedlem sedan juni 20014 421 inlägg
#3

Tack, nu funkade.
Kan man även plocka bort den där fråga som dyker upp när man kopierar i officepaketet om att det är en stor mängd data i minnet, och om man vill behålla det trycker man på yes om man inte vill det trycker man på no?

Löste det hela med koden jag har nedan, jag tömmer clipboard helt enkelt:

Sub SysLatis()
    Dim SourceWB As Workbook
    Application.ScreenUpdating = False
    Sheets.Add Type:=xlWorksheet
    ActiveSheet.Name = "SysLathunden"
    Set MyWB = ActiveWorkbook
    Set SourceWB = Workbooks.Open("\\Slafs\SysLathund.xls", False, True)
    SourceWB.Worksheets("Systemlathunden").Columns("A:L").Copy
    MyWB.Worksheets("SysLathunden").Columns("A:L").Insert
    Application.CutCopyMode = False
    SourceWB.Close (False)
    Set SourceWB = Nothing
    Set MyWB = Nothing
    Application.ScreenUpdating = True
End Sub
MindreVetandeMedlem sedan okt. 2005371 inlägg
#4

Lite sen eftersom du löst det. Men för framtida bruk; Du kan ju alltid skippa klippboken helt och hållet. Exempelvis genom att tilldela värdena istället.

    MyWB.Worksheets("SysLathunden").Columns("A:L").Value = _
    SourceWB.Worksheets("Systemlathunden").Columns("A:L").Value

Om du gör lite större makron så är det mycket snabbare än klipp och klistra om du vill flytta VÄRDEN.

Alternativt kan du kopiera hela kalkylbladet. Borde vara det enklaste.

    SourceWB.Sheets("Systemlathunden").Copy Before:=MyWB.Sheets(1)
'    MyWB.Sheets("Systemlathunden").Name = "SysLathunden" ' Om du behöver döpa om .
128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)