Обновление
Я играл с моим кодом и выяснил, как сделать вставку данных в нужное место во второй раз, но тогда данные вообще не будут вставленыесли вы нажмете кнопку еще раз.Вот обновленный код:
Dim kRow As Long
kRow = ws2.Range("W" & Rows.count).End(xlUp).Row
If ws2.Range("W4").Value = "" Then
ws2.Range("W4").Value = ws1.Range("A4").Value
Else:
kRow = ws2.Range("W" & Rows.count).End(xlUp).Row - 31
ws2.Range("W" & kRow).Offset(1).Value = ws1.Range("A4").Value
End If
Dim lRow As Long
lRow = ws2.Range("V" & Rows.count).End(xlUp).Row
If ws2.Range("V10").Value = "" Then
ws2.Range("V10").Value = ws1.Range("P2").Value
Else:
lRow = ws2.Range("V" & Rows.count).End(xlUp).Row - 31
ws2.Range("V" & lRow).Offset(1).Value = ws1.Range("P2").Value
End If
Dim mRow As Long
mRow = ws2.Range("Y" & Rows.count).End(xlUp).Row
If ws2.Range("Y10").Value = "" Then
ws2.Range("Y10").Value = ws1.Range("K37").Value
Else:
mRow = ws2.Range("Y" & Rows.count).End(xlUp).Row - 28
ws2.Range("Y" & mRow).Offset(1).Value = ws1.Range("K37").Value
End If
Исходное сообщение
У меня возникла эта раздражающая проблема с копированием и вставкой данных из одной рабочей книги в другую.Я пытаюсь скопировать некоторые данные из пользовательской формы в основную рабочую книгу, в которой хранятся все данные.Я настроил его так, что когда пользователь завершит работу с формой, он нажмет кнопку макроса и откроется основная рабочая книга, данные из формы будут вставлены в основную рабочую книгу, а затем закрыты.При следующем заполнении пользовательской формы и нажатии кнопки макроса данные вставляются в следующую доступную строку в главной рабочей книге.Большая часть данных, которые я хочу получить, работает, за исключением 5 частей данных.
При первом нажатии кнопки все нормально.Однако, если я нажму кнопку еще раз, эти пять фрагментов данных не будут вставлены в следующий ряд, как предполагалось, а будут вставлены на 31–28 строк ниже, чем предполагалось.Я пытался все, чтобы исправить это, но я не могу найти проблему.
Я опубликую соответствующий код ниже.Любая помощь будет принята с благодарностью.Спасибо!
Dim kRow As Long
kRow = ws2.Range("W" & Rows.count).End(xlUp).Row
If ws2.Range("W10").Value = "" Then
ws2.Range("W10").Value = ws1.Range("A4").Value
Else: ws2.Range("W" & kRow).Offset(1).Value = ws1.Range("A4").Value
End If
Dim lRow As Long
lRow = ws2.Range("V" & Rows.count).End(xlUp).Row
If ws2.Range("V10").Value = "" Then
'ws2.Range("V10").Value = ws1.Range("P2").Value
Else: ws2.Range("V" & lRow).Offset(1).Value = ws1.Range("P2").Value
End If
Dim mRow As Long
mRow = ws2.Range("Y" & Rows.count).End(xlUp).Row
If ws2.Range("Y10").Value = "" Then
ws2.Range("Y10").Value = ws1.Range("K37").Value
Else: ws2.Range("Y" & mRow).Offset(1).Value = ws1.Range("K37").Value
End If