簡體   English   中英

通過根據條件覆蓋另一個工作表中的單元格來復制單元格和粘貼

[英]Copy cells and paste by overwriting cells in another sheet based on a criteria

我正在嘗試創建一個依賴於日期的 VBA 代碼。 這是我的信息:

第 1 表:我有一個表格,從單元格 A1 開始並轉到 G29。 單元格 B2 包含日期,該日期已使用 Excel 中的 TODAY 選項進行編碼。

現在這張表必須每天更新,但是一旦一天結束,我想保存這張表的內容並清除第二天的表1。 我想把它全部保存在一個隱藏的工作表中,工作表 2。

目前,我已設法將所有內容復制並粘貼到工作表 2 中,然后激活表格下方的單元格,以便第二天復制和粘貼。

我遇到的問題是,每次運行宏時,它都會將表格復制並粘貼到我在工作表 2 中已經獲得的單元格下方的選定單元格中。因此對於任何特定日期,我可能有 3、4、5,同一張桌子的任何變化,都在彼此之下。

因此,我想要做的是告訴我的 VBA 代碼,如果單元格 B2(工作表 1)中的值是 x 並且工作表 2 中相應日期單元格中的值相同,則復制並粘貼到這些相同的單元格中。

我知道如何做最后一點,我想要幫助弄清楚(現在)是我如何告訴它在兩張紙上進行特定搜索和激活單元格,請記住它需要保持一般性一個日期,工作表 2 中的下一個日期單元格將在 B2 下方約 31 個單元格處,然后在其下方 31 個單元格處,依此類推。

這是我當前的宏:

Sub Macro1()
'
' Macro1 Macro
'
' Acceso directo: CTRL+h
'
    Range("A1:G29").Select
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    ActiveCell.Offset(31, 0).Select

End Sub

這會執行我的復制和粘貼並選擇下面的單元格。 但是,我正在努力讓 Excel 根據日期粘貼到特定單元格上。

我希望這是有道理的。 如果人們有任何問題,請告訴我!

您想檢查源工作表中的日期是否已存在於目標工作表中。 如果是,則將 29 行的表格粘貼在相應的范圍內,否則將其粘貼在底部。 以下應該工作:

Sub Macro1()

target = Cells("B2")
Range("A1:G29").Copy
end = Sheets("Hoja2").Cells(1048576, 2).End(xlUp).row 'check the last filled in row
tables = end / 29 'counts how many tables are already pasted in the sheet
for i = 1 to tables
    index = (i-1)*29 + 2 'row index where the date is written
    if Sheets("Hoja2").Cells("B" & index) = target then 'check if the date corresponds
        Sheets("Hoja2").Range("A" & index - 1).Paste
        Range("A" & index).Select
        ActiveCell.Offset(31, 0).Select
        exit sub
    end if
next i
'the following lines are skipped if the for loop pastes the table
Sheets("Hoja2").Range("A" & end + 1).Paste     
Range("A" & index).Select
ActiveCell.Offset(31, 0).Select

End Sub

暫無
暫無

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

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