Sub Macro4()
'
' Macro4 Macro
'
' Keyboard Shortcut: Ctrl Shift D
'
Dim CellContent0
Dim CellContent1
Dim CellContent2
Dim CellContent3
CellContent0 = ActiveCell.Address
CellContent1 = ActiveCell.Offset(, -4)
CellContent2 = ActiveCell.Offset(, 1)
Sheets("1c").Select
Cells.Find(What:=CellContent1, After _
:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False). _
Activate
Cells.Find(What:=CellContent2, After _
:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False). _
Activate
ActiveCell.Offset(, -1).Copy
Sheets("shipping").Select
Range(CellContent0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
請建議如何修復代碼。
我需要將 2 個單元格從活動單元格復制到左側(-4)和右側(1) 。然后我轉到另一張表并根據先前復制的單元格(-1)獲取值。
接下來我想回到上一張表并將復制的值粘貼到初始活動單元格中
例如,如果我從單元格 D7 運行宏,最后我需要將復制的值粘貼到同一個單元格 D7。
uj5u.com熱心網友回復:
由于您沒有回答我的澄清問題,請嘗試下一個避免選擇/激活的改編代碼,這只會消耗Excel資源,減慢代碼速度并且不會帶來任何好處。它復制您的代碼嘗試執行此操作的位置,并將剪貼板中的相同值復制到最初選擇的單元格中:
Sub Macro4()
' Macro4 Macro
' Keyboard Shortcut: Ctrl Shift D
Dim CellContent0 As Range, CellContent1 As Range, CellContent2 As Range
Dim ws1C As Worksheet, wsSh As Worksheet, Find1 As Range, Find2 As Range
Set ws1C = Sheets("1c")
Set wsSh = Sheets("shipping")
Set CellContent0 = ActiveCell
Set CellContent1 = CellContent0.Offset(, -4)
Set CellContent2 = CellContent0.Offset(, 1)
Set Find1 = ws1C.cells.Find(What:=CellContent1.value, After _
:=CellContent0, LookIn:=xlFormulas2, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
Set Find2 = ws1C.cells.Find(What:=CellContent2.value, After _
:=CellContent0, LookIn:=xlFormulas2, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not Find2 Is Nothing Then 'if a match has been found:
wsSh.Range(CellContent0.Address).value = Find2.Offset(, -1).value
'now I try copying what I understood from your comment:
CellContent0.value = Find2.Offset(, -1).value
End If
End Sub
僅復制單元格值,也不需要剪貼板。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/440542.html
下一篇:如何將資料拖到下一行?
