このコードでは、コピー先のブックを開いてシートを移動してもらうかどうかを尋ねるメッセージが表示されます。 FYIこれが理由かもしれ
Function GetWb(wbName As String)
Dim wb As Workbook, rv As Workbook
For Each wb In Application.Workbooks
If UCase(wb.Name) Like UCase(wbName & ".*") Then
Set rv = wb
Exit For
End If
Next wb
Set GetWb = rv
End Function
使用
Dim destWb As Workbook
Set destWb = GetWb("file2")
if destWb Is Nothing then
Msgbox "destination file not open!"
else
'perform the copy
end if
:あなたのリンク先のブックが既に開いている場合
Public Sub Test()
Dim vfile As Variant
Dim wrkBk As Workbook
'Ask for the location of File2.
vfile = GetFile(ThisWorkbook.Path)
Set wrkBk = Workbooks.Open(vfile)
ThisWorkbook.Worksheets("Hello").Move After:=wrkBk.Worksheets(1)
End Sub
Function GetFile(Optional startFolder As Variant = -1) As Variant
Dim fle As FileDialog
Dim vItem As Variant
Set fle = Application.FileDialog(msoFileDialogFilePicker)
With fle
.Title = "Select a File"
.AllowMultiSelect = False
.Filters.Add "Excel Files", "*.xls*", 1
If startFolder = -1 Then
.InitialFileName = Application.DefaultFilePath
Else
If Right(startFolder, 1) <> "\" Then
.InitialFileName = startFolder & "\"
Else
.InitialFileName = startFolder
End If
End If
If .Show <> -1 Then GoTo NextCode
vItem = .SelectedItems(1)
End With
NextCode:
GetFile = vItem
Set fle = Nothing
End Function
私は新しいExcelファイルを意味しますか?私はそれがEXE拡張機能で動作するのを見ることができません。 NEW FILEはまだ保存されていない実際に新しく作成されたファイルですか、またはファイルを作成してNEW FILEと呼んでいますか? –
これは一般的な既存のExcelファイルです。また、なぜ私はdownvotedになっていますか?私はしばらくの間これに取り組み、解決策を見つけることができませんでした –
なぜあなたがdownvotedされているのかわかりません - 私ではありませんでした。元々は少し曖昧でしたが、そのようなことは多分でした。 –