Если заявление для расчета еще скопировать и вставить? - PullRequest
0 голосов
/ 30 апреля 2019

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

Таким образом, мне нужен код VBA, который ищет столбец в Excel, пересчитывает значения в другом столбце на основе его результатов, а затем копирует и вставляет диапазон значений в новый лист после завершения.

Для иллюстрации ...

Лист 1:

  • Столбец A имеет ряд значений в долларах
  • Столбец B содержит коды X или Y

Мне нужен код, который эффективно говорит:

If column B = X  
Then multiply value in Column A* 2  
Else leave as is  

Затем скопируйте столбец A в столбец листа 2 C (или любой другой столбец на данный момент, действительно)

Я пытался написать код сам, но я все еще начинающий и изо всех сил. Надеюсь, что это имеет смысл!

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете попробовать:

Option Explicit

Sub TEST()

    Dim LastRow1 As Long, i As Long, LastRow2 As Long
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim Amount As Double

    'Set worksheets
    With ThisWorkbook

        Set ws1 = .Worksheets("Sheet1")
        Set ws2 = .Worksheets("Sheet2")

    End With

    'Find Last row of sheet 1 column A
    LastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row

    'Start looping rows from row 1 to lastrow1
    For i = 1 To LastRow1

        'If the value if X or Y
        If ws1.Range("B" & i).Value = "X" Then
            Amount = ws1.Range("A" & i).Value * 2
        Else
            Amount = ws1.Range("A" & i).Value
        End If

    'Find Last row of sheet 2 column C
    LastRow2 = ws2.Cells(ws2.Rows.Count, "C").End(xlUp).Row

    'Copy data
    ws2.Range("C" & LastRow2 + 1).Value = Amount

    Next i

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