Чтобы решить мою проблему с кодом, вставляющим скопированную информацию в Book.xlsx, а не в Finder.xlsx, куда она предназначена, я удалил секцию Set y = Workbooks.Open("C:\Users\me\Documents\Keyence\Finder.xlsm")
и заменил секцию y.Sheets("Sheet1").Range("C3").PasteSpecial
на ThisWorkbook.Sheet("Sheet1").Range("C3").PasteSpecial
.Это изменение привело к тому, что информация была вставлена в правильные ячейки в правильной рабочей книге.
Чтобы решить проблему с кодом форматирования, изменив и Finder.xlsx (что предполагается сделать), и Book.xlsx (которыйэто не должно делать), я использовал совет @ PEH.Сначала код выглядел примерно так:
Sub Finder()
Range("C2").Value = "Measurement"
Range("C2").ColumnWidth = 13
Range("D2").Value = "Unit"
Range("D2").ColumnWidth = 5
Но этот код не указывал, где должно происходить форматирование, поэтому он только догадывался.Чтобы обойти это, я изменил его так, чтобы он выглядел примерно так:
Sub Setup()
Dim WsToFormat As Worksheet
Set WsToFormat = ThisWorkbook.Worksheets("Sheet1")
With WsToFormat
.Range("C2:D2").Interior.Color = RGB(83, 235, 231)
.Range("C4").Value = "Date/Time"
.Range("D4").Value = "Measurement"
.Range("D4").ColumnWidth = 13
End With
End Sub
Это говорит коду форматирования, какую рабочую книгу и лист необходимо отформатировать.
Окончательный код с обоимиИсправления выглядят так:
Sub Finder()
Dim WsToFormat As Worksheet
Set WsToFormat = ThisWorkbook.Worksheets("Sheet1")
With WsToFormat
.Range("C2:D2").Interior.Color = RGB(83, 235, 231)
.Range("C4").Value = "Date/Time"
.Range("D4").Value = "Measurement"
.Range("D4").ColumnWidth = 13
End With
With Range("C2:D2").Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With
Dim x As Workbook
Set x = Workbooks.Open("C:\Users\me\Documents\Keyence\Book.xlsx")
x.Sheets("Sheet1").Range("C18:I18").Copy
ThisWorkbook.Sheet("Sheet1").Range("C3").PasteSpecial
End Sub
Надеюсь, это поможет кому-нибудь в будущем.