Копирование значений таблицы на новый лист в L oop? - PullRequest
0 голосов
/ 05 февраля 2020

Итак, я уже подправил этот фрагмент кода по другой причине. Поиск по столбцу таблицы объекта списка в For L oop

По сути, проблема сводится к тому, что я хочу l oop через таблицу, и если строка соответствует определенным критериям, я хочу скопировать значение на новую вкладку (для дальнейшего использования.)

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

Вот полный код

Sub RequestedAssetList()

Dim FullAssLi As ListObject, RowRange As ListRow  'Defining the Table and Range
Set FullAssLi = ThisWorkbook.Sheets("Asset List").ListObjects("AssListTab") 'Set FullAsset Lists as the Asset Table



    With ThisWorkbook 'Within the workbook
    .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "Assets" 'Adds a sheet at the end of the workbook called Assets
    End With


     With ThisWorkbook.Sheets("Assets")
        Dim RowToPasteTo As Long
        'RowToPasteTo = ThisWorkbook.Worksheets("Assets").Range("A1").End(xlDown).Row + 1
        RowToPasteTo = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 'Sets variable as the next exmpy row on column A of Assets' tab


            For Each RowRange In FullAssLi.ListRows
            If RowRange.Range.Cells(9).Value = UserForm2.SourceLiBo.Value Then 'If Data Source matches userform criteria then
 ThisWorkbook.Sheets("Assets").Range("A1").Value = RowRange.Range.Cells(2).Value


'
''
                End If
            Next

     End With
End Sub

Кажется, что проблема в строке If RowRange.Range.Cells(9).Value = UserForm2.SourceLiBo.Value Then ThisWorkbook.Sheets("Assets").Range("A1").Value = RowRange.Range.Cells(2).Value

Как я могу получить это, чтобы скопировать цифры из FullAssL в новый лист активов?

Я поиграл, изменив эту строку кода, изменив фоновый цвет RowRange.Cells (9) и все еще ничего.

1 Ответ

0 голосов
/ 05 февраля 2020

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

  Dim i
  i = 1
  For Each RowRange In FullAssLi.ListRows
      If RowRange.Range.Cells(9).Value = UserForm2.SourceLiBo.Value Then
          ThisWorkbook.Sheets("Assets").Range("A" & i).Value = RowRange.Range.Cells(2).Value
          i = i + 1 
      End If
  Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...