返回列表 上一主題 發帖

[發問] 如何將A工作表不同欄位值,由上到下貼上B工作表同欄位呢?

[發問] 如何將A工作表不同欄位值,由上到下貼上B工作表同欄位呢?

本帖最後由 edmondsforum 於 2021-8-19 17:44 編輯

各位大大你好,
小弟有一個A工作表,如下圖


假設D5為今天日: 110/8/19,今天共買賣6次股票,每次股票都有自己的張數(I7:I26),其每張依照不同序位,又有不同損益金額,
如獲利金額(Y7:Y26)、賠損金額(AG7:AG26)  
如何將上述資料,依序由上而下貼在B工作表 的 D:F欄裡 並依序貼上純文字資料
因為我每天都會有不同支數,想貪圖便利一鍵就貼上>< 然後明天110/8/20 就依序在110/8/19 自動貼上之類的。

成果如下圖


另外也希望透過VBA 將A工作表 期望值(Z2) 也能依序貼上><

如下成果圖所示


檔案如附件  
test.zip (16.9 KB)

再拜託各位大大了:P

回復 1# edmondsforum


請問B表 的G欄位如何得知?

TOP

回復 3# samwang

B表的G欄位除了黃色底是我手動算的
我這邊定義我七月累計損益為-11,0000+1000 = -100,000
而G4= F4+G3  = -100,000 -200 =-100,200
G5 = F5+G4 ...依此類推

TOP

抱歉,這句話更正為
我這邊定義我七月累計損益為-101,000+1000 = -100,000

TOP

回復 3# edmondsforum

請測試看看,謝謝

Sub test()
Dim Arr, Brr(), xD, i&, n%
Set xD = CreateObject("Scripting.Dictionary")
With Sheets("A")
    Arr = .Range(.[ag1], .[c66635].End(3))
    ReDim Brr(1 To UBound(Arr), 1 To 3)
    For i = 7 To UBound(Arr)
        n = n + 1: Brr(n, 1) = Arr(5, 2)
        Brr(n, 2) = Arr(i, 7)
        If Arr(i, 23) <> "" Then
            Brr(n, 3) = Arr(i, 23)
        Else
            Brr(n, 3) = Arr(i, 31)
        End If
    Next
End With
With Sheets("B")
    R = .Range("r65536").End(3).Row + 1
    .Range("r" & R) = Arr(5, 2)
    .Range("s" & R) = Arr(2, 24)
    R = .Range("d65536").End(3).Row + 1
    .Range("d" & R).Resize(n, 3) = Brr
    Arr = .Range(.[g1], .[d66635].End(3))
    For i = R To UBound(Arr)
    .Cells(i, 7) = Arr(i, 3) + .Cells(i - 1, 7)
    Next
End With
End Sub

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題