2017-05-07 16 views
-1

私はこの優れたコードを見つけましたが、私の目的に合わせる必要があります。Excel VBA - ブックを開いてデータを貼り付けます

まず、私たちのネットワーク上にあるデータブックを開く必要があります。私が持っている問題は、別のユーザーが開いている可能性があり、「読み取り専用」というオプションを提供するということです。私はどのように私はデータの抽出を開始することができるように読み取り専用オプションを受け入れることができます。

次に、 "="を使用してコピーします。値をコピーするにはどのように変更できますか?

最初のマクロ:

Sub test() 
'to open another workbook 
Application.ScreenUpdating = False 
Workbooks.Open Filename:=ThisWorkbook.Path & "\Schedule.xls" 
ThisWorkbook.Activate 
Application.ScreenUpdating = True 

End Sub 

第二マクロ:

Dim Sh As Worksheet 
Dim Newsh As Worksheet 
Dim myCell As Range 
Dim ColNum As Integer 
Dim RwNum As Long 
Dim Basebook As Workbook 

With Application 
    .Calculation = xlCalculationManual 
    .ScreenUpdating = False 
End With 

'Delete the sheet "Summary-Sheet" if it exist 
Application.DisplayAlerts = False 
On Error Resume Next 
ThisWorkbook.Worksheets("Summary-Sheet").Delete 
On Error GoTo 0 
Application.DisplayAlerts = True 

'Add a worksheet with the name "Summary-Sheet" 
Set Basebook = ThisWorkbook 
Set Newsh = Basebook.Worksheets.Add 
Newsh.Name = "Summary-Sheet" 

'The links to the first sheet will start in row 2 
RwNum = 1 

For Each Sh In Basebook.Worksheets 
    If Sh.Name <> Newsh.Name And Sh.Visible Then 
     ColNum = 1 
     RwNum = RwNum + 1 
     'Copy the sheet name in the A column 
     Newsh.Cells(RwNum, 1).Value = Sh.Name 

     For Each myCell In Sh.Range("A1,D5:E5,Z10") '<--Change the range 
      ColNum = ColNum + 1 
      Newsh.Cells(RwNum, ColNum).Formula = _ 
      "='" & Sh.Name & "'!" & myCell.Address(False, False) 
     Next myCell 

    End If 
Next Sh 

Newsh.UsedRange.Columns.AutoFit 

With Application 
    .Calculation = xlCalculationAutomatic 
    .ScreenUpdating = True 
End With 
End Sub 

答えて

0

読み取り専用としてあなたはデータのみを抽出している場合は、いつでもブックを開くことができます。 .formulaの代わりに.valueを使用してください。

+0

ありがとうございました。両方のマクロをマージして、データブックを開いてデータを抽出し、変更を保存しないようにする方法を尋ねてください。 – Angelo

関連する問題