Как устранить ошибку свойства при попытке конвертировать несколько диапазонов в значения? - PullRequest
0 голосов
/ 29 января 2020

Все, я новичок в VBA и учу себя ... Я получаю ошибку свойства при попытке изменить формулы диапазона ... диапазон можно найти внизу кода. Как заставить эти ячейки обращаться к значениям, не выдавая ошибку?

Sub InvestorModelMacro()

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    DisplayGridlines = False

    Dim r As Range, ws As Worksheet

    For Each r In Worksheets("Asset Dashboard").Range("C6:C9")   'go through each cell in DV list
        If Len(r) > 0 Then                                       'only do something if cell not empty
            Worksheets("Live").Range("D3").Value = r.Value        'transfer value to cell D3 of 'Live' tab
            Application.Calculate
            Set ws = Worksheets.Add                               'add new sheet
            ws.Name = Worksheets("Investor Model").Range("D3")    'renames new sheet after selected asset
            Worksheets("Investor Model").Cells.Copy
            ws.Range("A1").PasteSpecial xlFormulas                'copy values only from Investor Model to new sheet
            ws.Range("A1").PasteSpecial xlFormats                 'copy formats only from Investor Model to new sheet
            ActiveWindow.DisplayGridlines = False                 'turns off gridlines
            ws.Range("F46:G52,G54,G56:G58,G60:G61,G65:G72,G75:G80,G87,G89:G92").Values
            ws.Range("F46:G52,G54,G56:G58,G60:G61,G65:G72,G75:G80,G87,G89:G92").Font.Color = vbBlue

        End If
    Next r

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True


End Sub

1 Ответ

1 голос
/ 30 января 2020

Самое большее, вы можете использовать Области

Dim Area As Range
'...
For Each Area In ws.Range("F46:G52,G54,G56:G58,G60:G61,G65:G72,G75:G80,G87,G89:G92").Areas
    Area.Value = Area.Value
    Area.Font.Color = vbBlue
Next Area
...