簡體   English   中英

將數據從一個工作簿復制到另一個工作簿會粘貼在隨機單元格中

[英]Copying data from one workbook to another gets pasted in random cells

更新

我一直在玩我的代碼,並想出了如何第二次將數據粘貼到正確的位置,但是如果再次按下按鈕,數據將根本無法粘貼。 這是更新后的代碼:

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

您將偏移量設置為 1,這意味着它采用了范圍的兩個維度並將其偏移了那么多。

如果您希望它出現在最后一行之后的行中,請嘗試ws2.Range("Y" & mRow).Offset(1,0).Value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM