Как проверить диапазон для значения ячейки, а затем вставить другое значение в VBA - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в VBA и макросах и хочу изучить его, автоматизировав части моего «отслеживания расписания» Excel.

Идея состоит в том, что я всегда вводю новую календарную неделю в ячейку в качестве напоминания (так что это делается вручную).

Что должен делать макрос:

1) копировать ячейку, которая суммирует все мои отработанные часы (таким образом, одну конкретную ячейку).Это значение находится на рабочем листе «Расписание на неделю»

2) Перейдите и возьмите это значение, посмотрите на другой рабочий лист («Обзор года»), если это значение (номер календарной недели) находится в диапазоне (диапазонсписок каждой календарной недели, поэтому от 1 до 52, это столбец A) и, если это так, вставьте скопированное значение в столбец C.

Можете ли вы помочь мне с этим?Ниже кода я начал делать.Спасибо за вашу помощь!

Sub
If Worksheets("Week Timesheet").Range("K6").Value = Worksheets("Year Overview").Range("A2:53").Value Then
        Worksheets("Week Timesheet").Range("I37").Select
        Selection.Copy
        Sheets("Year Overview").Select
        Range("C11").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

End If    
End Sub

1 Ответ

0 голосов
/ 04 декабря 2018

Я не уверен, правильно ли я понял.Вы хотите копировать значение недели каждый раз в ячейке ("C11")?Таким образом, значение перезаписывается каждый раз.Вы лучше хотите, чтобы значение суммировалось, верно?Я сделал две версии, надеюсь, вам это поможет:

Версия (1): перезаписать ячейку ("C11") Версия (2): суммировать ячейку ("C11")

Sub insertworkinghours()
Dim i As Integer

For i = 1 To 52
    If Worksheets("Week Timesheet").Range("K6").Value = Worksheets("YearOverview").Cells(1, 1 + i).Value Then

        Worksheets("Year Overview").Range("C11").Value = Worksheets("Week Timesheet").Range("I37").Value    '(Version 1)

        Worksheets("Year Overview").Range("C11").Value = Worksheets("Year Overview").Range("C11").Value + Worksheets("Week Timesheet").Range("I37").Value    '(Version 2)
    End If
Next

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