Найти столбец, а затем вставить VBA Excel - PullRequest
0 голосов
/ 15 октября 2019

Мне нужно сохранить некоторые данные, просто нажав кнопку.

Это должно быть легко, но я не знаю синтаксис для VBA.

Range("P2:P47").Copy

Sheets("All Data").Select
Range("J2").Select

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

У меня 2 проблемы с этим кодом,

1 есть "много" выборов, от которых я не знаю, как избавиться (я знаю, что вы должны стараться неиспользовать выборки).

2 Моя настоящая проблема заключается в следующем: ячейка J2 в коде не должна быть определенной ячейкой. Я хотел бы получить «значение поиска» и найти его в массиве, а затем использовать ячейку mathing для вставки моих значений.

Итак, в ячейке моей книги A1 = «19 августа» и в строке 2все месяцы перечислены. Таким образом, ячейка A2 = "19 января", B2 = "19 февраля" и т. Д.

Я хотел бы выбрать ячейку H2, а затем вставить, сопоставив мое значение поиска "Aug 19" с H2, содержит "Aug 19"

Так что в формулах Excel я бы просто написал:

=HLOOKUP(A1;'All Data'!$B$2:$AL$2;1;FALSE)

Решенная задача 1

Sub savedata()

    Range("P2:P47").Copy

    Worksheets("All Data").Range("J2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

РЕДАКТИРОВАТЬ на задачу 2:

Sub savedata()

    Range("P2:P47").Copy

    ActiveSheet.Range("C3:K3").Find(What:="Aug 19").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

Эта работа, как мне нужно! Все еще сомневаюсь, что я не могу понять, как ссылаться на ячейку A1 вместо «19 августа».

1 Ответ

0 голосов
/ 16 октября 2019

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

Sub savedata()

    G = Range("A1").Value

    Range("P2:P47").Copy

    Worksheets("All Data").Select
    Range("C2:AL2").Find(What:=G).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


    Worksheets("Add Data").Select
    Application.CutCopyMode = False
    Range("C4:K34").ClearContents

End Sub

Я хотел бы сделать так, но это не работает: Sub saveata ()

    G = Range("A1").Value

    Range("P2:P47").Copy

    Worksheets("All Data").Range("C2:AL2").Find(What:=G).PasteSpecial 
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


    Worksheets("Add Data").Select
    Application.CutCopyMode = False
    Range("C4:K34").ClearContents

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