2016-06-24 2 views
0

У меня есть сценарий VBA для копирования данных из текущего файла в другую книгу. Если я запускаю его вручную, код работает хорошо. Он копирует данные из текущей книги, затем открывает другую, вставляет данные и, наконец, закрывает их.Excel 2013 - макрокоманды не работают должным образом, но макрос отлично работает, активируя его вручную

Однако, если я запустил этот макрос по ярлыкам, он просто вставляет данные и не закрывает целевую книгу.

Sub CopyToBMD() 
' 
' CopyToBMD Macro 
' Copy Lastest BMD price to appropriate day in the table 
' 
' 
Dim target As Integer 
Dim LDate As String 

Sheets(1).Select 
Range("B48:R48").Copy 

LDate = Date 

If Cells(40, 2).Value = Cells(1, 2).Value Then 
    target = 2 
Else 
    target = 8 
End If 

' Paste data to BMD&CBOT 
Dim wbk As Workbook 
Dim folderPath As String 
Dim ws As Worksheet 

'Find file location 
folderPath = Application.ActiveWorkbook.Path 
FilePath = Dir(folderPath & "\BMD&CBOT.xlsx") 

Set wbk = Workbooks.Open(folderPath & "\" & FilePath) 
Set ws = wbk.Sheets("CPO-Jun 16") 

' i is the row number 
Dim i As Integer 

For i = 4 To 34 
    If Cells(i, 1).Value = LDate Then 
     ws.Cells(i, target).Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    End If 
Next i 

wbk.Close True 

End Sub 

ответ

0

Выполните следующие действия:

[your code] 
    End If 
Next i 
debug.print wbk.name 
wbk.Close True 

End Sub 

Что печатать? Короче говоря, не используйте «ActiveWorkbook», но ссылайтесь на него явно, как вы это делали с помощью wbk.

Смежные вопросы