Определите содержимое ячейки и скопируйте соответствующее значение с помощью Excel Macro. - PullRequest
0 голосов
/ 17 января 2019

Я попытался создать код vba, который поможет мне определить, имеет ли Range("A1:A5") какое-либо числовое значение, если он идентифицирует содержимое, имеет номер, скопируйте Range("D10") и вставьте одно и то же значение в каждый Range(B1:B5")

Поскольку я новичок в написании vba, разработанный мной код работает не очень хорошо.

Как мне решить следующие вопросы?

Sub Findvalues()

 Dim rng As Range, Cell As Range

 Set rng = Range("A1:A3")            'Cells data content'
 For Each Cell In rng

 If Cell.Value = "@" Then           'To identify whether cell has a number'
 Range("A10").Select                'copy ("A10") value
 Selection.Copy  

 Range("B1:B5").Select       'This is the line needs to be corrected'
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End If
Next Cell
End Sub

Ответы [ 2 ]

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

Это заполнит B тем, что есть в A10, если у A есть число:

Sub Findvalues()
    With Worksheets("Sheet7") 'change to your sheet
        Dim rng As Range
        Set rng = .Range("A1:A5")            'Cells data content'
        .Range("B1:B5") = .Evaluate("IF(ISNUMBER(" & rng.Address & "),A10,"""")")
    End With
End Sub
0 голосов
/ 17 января 2019

Если вы хотите проверить число в Cell.Value, попробуйте IsNumeric(). Вы также можете изменить метод Select-Copy, чтобы разрешить Range("B1:B5") = Range("A10"), поскольку вы копируете только значения.

Sub Findvalues()

Dim rng As Range, Cell As Range

Set rng = Range("A1:A3")
For Each Cell In rng
    If IsNumeric(Cell.Value) Then
        Range("B1:B5") = Range("A10")
    End If
Next Cell
End Sub

Для размещения вашего комментария,

Sub Findvalues()

Dim rng As Range, Cell As Range

Set rng = Range("A1:A5")
For Each Cell In rng
    If IsNumeric(Cell.Value) Then
        Cell.Offset(0,1) = Range("A10")
    End If
Next Cell
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...