#excel #vba
#excel #vba
Вопрос:
Я пытаюсь создать vba для копирования строк с 24 по 28 существующего шаблона excel «Образец CPS — Direct.xlsx » и вставьте его на любой текущий рабочий лист, над которым я работаю.
Ниже приведен код, который в настоящее время можно вставить только в файл Excel с именем «01 Add Products1.xlsx » , как мне изменить его, чтобы приведенный ниже код мог вставить его на ЛЮБОЙ текущий рабочий лист, над которым я работаю? Спасибо!!
Sub FinalPricingDirectEnrollment()
'
' FinalPricingDirectEnrollment Macro
' FinalPricingDirectEnrollment
'
' Keyboard Shortcut: Ctrl a
'
Windows("Sample CPS - Direct.xlsx").Activate
Range("A2:M2").Select
Windows("01 Add Products1.xlsx").Activate
Range("A2:M2").Select
ActiveCell.FormulaR1C1 = _
"Microsoft Volume Licensing - Customer Price Sheet - Final Pricing"
Range("D4:E4").Select
ActiveCell.FormulaR1C1 = "10/31/2020"
Range("H7:I7").Select
ActiveCell.FormulaR1C1 = "BDSG DH"
Range("H8:I8").Select
Workbooks("Sample CPS - Direct.xlsx").Rows("24:28").Copy _
ActiveSheet.Range("A24")
End Sub
Комментарии:
1. Каково имя (название вкладки) рабочего листа в рабочей книге
Sample CPS - Direct.xlsx
, строки которого вы хотите скопировать, и является ли это единственным рабочим листом? Вам нужны только значения или формулы и форматы тоже?2. Здравствуйте, название вкладки рабочего листа в примере CPS рабочей книги — Direct.xlsx является Титульной страницей
3. Я копирую набор объединенных строк с цветами и жирным шрифтом.
Ответ №1:
Скопируйте диапазон
Вы могли бы сделать это:
Option Explicit
Sub finalpricingNOtenantsDirectEnrollment()
Dim ws As Worksheet
Set ws = Workbooks("Sample CPS - Direct.xlsx").Worksheets("Cover Page")
ws.Rows("24:28").Copy ActiveSheet.Rows(24)
' or:
'ws.Rows("24:28").Copy ActiveSheet.Range("A24")
' Which is short for :
'ws.Rows("24:28").Copy Destination:=ActiveSheet.Range("A24")
End Sub
Комментарии:
1. Большое вам спасибо! Это работает немедленно, вы спасаете жизнь такому новичку, как я .. спасибо!!