Вставьте окончательный вывод моего кода VBA в качестве значений - PullRequest
0 голосов
/ 12 января 2019

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

Sub lastRow()
Dim wsS1 As Worksheet 'Sheet1
Dim wsS2 As Worksheet 'sheet2
Dim lastR As Long, lastC As Long


Set wsS1 = Sheets("Instru Input")
Set wsS2 = Sheets("Process1")

 With wsS1
 lastR = .Range("A" & .Rows.Count).End(xlUp).Row - 4
 End With

With wsS2
lastC = .Cells(3, Columns.Count).End(xlToLeft).Column
Range(.Cells(3, 1).Address, .Cells(3, lastC).Address).AutoFill 
Destination:=Range(.Cells(3, 1).Address, .Cells(lastR, lastC).Address)

End With
End Sub

Я новичок в VBA. Я не знаю, как вставить данные в качестве значений. Я не уверен, что добавить в этот код, чтобы он вставлялся только в качестве значений.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

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

Sub lastRow()

Dim wsS1 As Worksheet 'Sheet1
Dim wsS2 As Worksheet 'sheet2
Dim lastR As Long, lastC As Long


Set wsS1 = Sheets("Instru Input")
Set wsS2 = Sheets("Process1")

With wsS1
lastR = .Range("A" & .Rows.Count).End(xlUp).Row - 4
End With

With wsS2
lastC = .Cells(3, Columns.Count).End(xlToLeft).Column
Range(.Cells(3, 1).Address, .Cells(3, lastC).Address).AutoFill 
.Range(.Cells(3,1).Address, .Cells(lastR, lastC).Address)


End With

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

End Sub
0 голосов
/ 12 января 2019

Перво-наперво - ставьте точку перед каждым Range() и Cells(), таким образом, вы бы правильно ссылались на With wsS2. В противном случае это относится к ActiveSheet или Worksheet, где код - - VBA - циклический просмотр нескольких листов и применение фильтра


По вопросу - быстрый способ решить его, добавить в конце следующую строку:

.Range(.Cells(3, 1), .Cells(lastR, lastC)).Value2 =.Range(.Cells(3, 1), .Cells(lastR, lastC)).Value2

до End With. Это очень быстро превратит формулы в значения. Или используйте опцию из комментария, добавив `, Type: = xlFillValues ​​после места назначения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...