Excel 2010 вставить значения - PullRequest
0 голосов
/ 21 февраля 2012
Dim ws As Worksheet, wbREF As Workbook
Set ws = ActiveSheet
Set wbREF = Workbooks.Open("ALSP.xls")      'you may want to put the full path here

Range("B7:L61").Copy ws.Range("N7")         'copy to original sheet
wbREF.Close False

Set ws = ActiveSheet
Set wbREF = Workbooks.Open("FLSP.xls")      'you may want to put the full path here

Range("B7:L61").Copy ws.Range("Z7")         'copy to original sheet
wbREF.Close False

Set ws = ActiveSheet
Set wbREF = Workbooks.Open("GASP.xls")      'you may want to put the full path here

Range("B7:L61").Copy ws.Range("AL7")         'copy to original sheet
wbREF.Close False

Я сейчас использую этот макрос, который прекрасно работает.У меня вопрос к рабочей тетради "GASP", в которой есть формулы.Этот марко не копирует значения, которые мне нужны.Может ли кто-нибудь предложить работу вокруг.Спасибо

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Во-первых, вам действительно нужна эта строка в начале макроса:

Set ws = ActiveSheet

Далее, чтобы скопировать только VALUES, вам нужно переключиться на команду копирования / вставки из двух строк:

Set wbREF = Workbooks.Open("GASP.xls")      'you may want to put the full path here

Range("B7:L61").Copy 
ws.Range("AL7").PasteSpecial xlPasteValues  'copy to original sheet
wbREF.Close False
1 голос
/ 22 февраля 2012

Я думаю, что вы хотите, чтобы макрос копировал значения, а не только формулы. Проверьте код ниже

Set ws = ActiveSheet
Set wbREF = Workbooks.Open("GASP.xls")

Range("B7:L61").Copy
ws.Range("AL7").PasteSpecial xlPasteValues
wbREF.Close False

Также убедитесь, что в Excel включен автоматический расчет. Вы можете проверить это на ленте «Формулы». И последнее, о чем следует помнить, это то, что вы должны быть осторожны с квалификацией ваших ссылок. Каждый раз, когда вы вызываете функцию «Диапазон», целесообразно указать рабочую книгу и рабочую таблицу, в которой содержится этот диапазон. Как это:

ThisWorkbook.Sheets("Sheet1").Range("Al7")

или

With ThisWorkbook.Sheets("Sheet1")
     Set rng = .Range("Al7")
End With
...