簡體   English   中英

Excel VBA - 復制/粘貼數據 + 循環遍歷行

[英]Excel VBA - copy/paste data + loop throughout rows

讓我首先感謝你們的幫助。

我在 VBA 編程知識非常有限的情況下試圖實現的是這個。

在第一張紙上,我在 A 列中有日期,在 B 列(緯度)和 C(經度)列中有坐標。

在表 2 上,我有一個基於坐標的完整計算,它返回每個日期的日落時間。

基本上,我想要做的是,當有坐標時,我想將這些(緯度和經度),go 復制到表 2 並將它們復制到 B3。 然后,我想查找復制坐標的日期(位於表 1,A 列)以復制相應的日落時間並將其粘貼到 D 列(經度旁邊)的表 1 中。

我首先想讓它適用於數據集中的 1 個條目。 它應該看起來像下面的例子嗎?

然后,我將如何在表 1 中該表的 34 行中循環? 當實際有數據時,它需要這樣做,避免空單元格。

非常感謝您的幫助。

親切的問候,

阿爾諾

Set timetable = Worksheets("Sheet2").Range("D2:Z368")

Sheets("Sheet1").Select
Range("AS12:AT12").Copy
Sheets("Sheet2").Select
Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Sheets("Sheet1").Select
Range("AU12") = Application.WorksheetFunction.VLookup(Range("AR12"), timetable, 23, False)

我已經清理了你原來的宏生成代碼。 我將工作表 function 替換為直接插入工作表的公式,然后根據要求將公式復制到其他 33 個單元格。 我測試了它並且它有效。

如果發生錯誤,Excel IFERROR function 將顯示一條消息,在這種情況下,Sheet2 上的表中缺少值


    Private Sub Test()
    
    Dim timetable As Range
    Dim WS As Worksheet, WS2 As Worksheet
    
    'set up worksheet variables for cleaner, more easily readable code
    Set WS = ThisWorkbook.Sheets("Sheet1")
    Set WS2 = ThisWorkbook.Sheets("Sheet2")
    
    Set timetable = WS2.Range("D2:Z368")
    
    WS.Range("AS12:AT12").Copy
    WS2.Range("B3").PasteSpecial (xlPasteValues)
    
    'this is your modified original line of code
    'WS.Range("AU12") = Application.WorksheetFunction.VLookup(WS.Range("AR12"), timetable, 23, False)
    
    'create formula for first cell
    WS.Range("AU12").Formula = "=IFERROR(IF(AR12="""","""",VLOOKUP(AR12,Sheet2!D$2:Z$368,23,FALSE)),""Value missing from Sheet2 table"")"
    
    'copy formula to the additional 33 cells as requested
    
    WS.Range("AU12").Copy
    WS.Range("AU12:AU45").PasteSpecial Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    End Sub

暫無
暫無

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

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