Умножение диапазона с ячейкой VBA - PullRequest
0 голосов
/ 28 сентября 2019

Я новичок в VBA.Был бы признателен за любую помощь, которую я могу получить.

У меня есть несколько вопросов.

1) Как я могу умножить диапазон на другую ячейку, которая содержит значение, и поместить новые значения врядом с колонкой?

2) Какая польза от установки Rng в качестве диапазона?Как это отличается от Dim rng как диапазона?

3) Мне нужно нажать кнопку «дважды на клавиатуре», прежде чем появится, и она появится как «».Как я могу решить эту проблему, так что "появится после нажатия кнопки клавиатуры один раз?

Вот мои коды.

Sub try()

Dim rng As Range
Dim x As Integer
Dim y As Integer

x = Range("A1:A5").Value

Range("B1:B5").Value = x * cells ( 1 , "E")

End Sub()

Я получаю

ошибка времени выполнения 13; несоответствие типов

И я также пытался это

Sub try()

Dim rng as range
Set rng as Range

rng = Range("A1:A5").Value

Range("B1:B5").Value = rng * cells( 1 , "E")
End Sub()

Я получаю синтаксическую ошибку для строки

Set rngкак Диапазон

И если я удаляю эту строку,

Я получаю ошибку

Ошибка 91, переменная объекта или переменная блока не установлена ​​

.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

1)

Sub try()
    With ActiveSheet
        .Range("B1:B5").Value = .Evaluate("=A1:A5 * $E$1")
    End With
End Sub

2) Set Range As Range неверный синтаксис, поэтому неясно, что вы здесь спрашиваете

3) Похоже, ваша клавиатура сломана?

0 голосов
/ 28 сентября 2019

Для вашего первого вопроса, хотя вам не нужен VBA, вы можете сделать это:

Option Explicit

Public Sub try()

    Dim rng As Range
    Dim cel As Range
    Dim x As Integer
    Dim lrow As Long

    With ActiveSheet
        lrow = .Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = .Range("A1:A" & lrow)
        x = .Cells(1, "E").Value
    End With

    For Each cel In rng
        cel.Offset(0, 1).Value = cel.Value * x
    Next

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