|
他の2つのブックを開いて、コピペをやるつもりで、
下記のコードを書きました。
Private Sub CommandButton1_Click()
Dim ExcelFileOpen, ToFileOpen
On Error GoTo ErrHandler
Application.ScreenUpdating = False
’ブック1を開く
ExcelFileOpen = Application.GetOpenFilename _
(FileFilter:="MicroSoft Excel Files (*.xls), *.xls", _
MultiSelect:=False, Title:="Files to Merge")
If TypeName(ObjectObject) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
'-----------ブック2を開く
ToFileOpen = Application.GetOpenFilename _
(FileFilter:="MicroSoft Excel Files (*.xls), *.xls", _
MultiSelect:=False, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
If ToFileOpen <> False Then
Set wb2 = Workbooks.Open(Filename:=ToFileOpen)
End If
’貼り付けしたいブックの最初の位置を選択
Application.ScreenUpdating = True
Dim c As Range
Set c = Application.InputBox(prompt:="Choose the cell,please.", Title:="Choose cells", Type:=8)
'------------
If ExcelFileOpen <> False Then
Set wb1 = Workbooks.Open(Filename:=ExcelFileOpen)
End If
’ブック1のある列の中の一部を選択、末端は不定。
’シートは保護されている。しかも、コピーしたいセルは関数が入っている。
Workbooks.Open Filename:=ExcelFileOpen
Dim Xia As Integer
ActiveSheet.Unprotect Password:="123"
Xia = Range("B7").End(xlDown).Row '===ここでエラー6が出ました。
Sheets(1).Range(Cells(7, 15), Cells(Xia, 15)).Copy
ActiveSheet.Protect Password:="123"
c.PasteSpecial xlPasteValues
ActiveWorkbook.Close
ThisWorkbook.Close
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
|
|