1

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

Sub testing44()
 Dim intPasteRow As Integer
    intPasteRow = 1
    Dim intRow As Integer
    Dim Found As Range, FirstFound As String


Sheets("Sheet1").Select
Columns("B:B").Select
On Error Resume Next
Selection.Find(What:="STATEMENT DATE *", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Activate

If Err.Number = 91 Then
    MsgBox "ERROR: 'STATEMENT DATE:' could not be found."
    End
End If


On Error Resume Next
Selection.Find(What:="INITIAL MARGIN", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Activate

If Err.Number = 91 Then
    MsgBox "ERROR: 'INITIAL MARGIN' could not be found."
    End
End If


intRow = ActiveCell.Row
Rows(intRow & ":" & intRow).Select
Selection.Copy

Sheets("Sheet2").Select
Range("A" & intPasteRow).Select
ActiveSheet.Paste

Sheets("Sheet2").Select
Rows(intRow + 1 & ":" & intRow).Select
End Sub

1 ответ1

0

Не совсем понятно, что вы пытаетесь сделать, но исходя из того, что вы нам сказали, у меня есть несколько конкретных предложений:

Создавая новые листы из существующих данных, я, как правило, перебираю начальные данные в цикле, ища интересующие меня характеристики, затем копирую всю строку (или отдельные интересующие меня ячейки) в новый лист. грести за раз. Что мне не понятно, сколько новых листов создаст ваша программа? Если их больше двух, предлагаю переосмыслить упражнение.

- это делает ваше программное обеспечение намного проще в реализации

- рассмотреть возможность создания ОДНОГО выходного листа. Добавьте столбец для "даты выписки", затем используйте выбор «фильтр - автофильтр», чтобы позволить вашим конечным пользователям самим выбирать, что к чему.

Проще всего, если данные начинаются как строки, выполняются макросы, создаются строки как выходные данные. Я скажу, что немного усложняет копирование, если оригинальные поля ввода данных представлены в строковом или числовом формате.

Если вы настаиваете на новом листе для каждой "даты выписки" и вам нужны данные столбца, то в качестве последнего шага в макросе перенесите строку (и) в столбцы (столбцы)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .