我想復制“資產”、“數量”、“市場價值”和“投資組合權重 %”列,并且只復制到 ClientStartRow 和 ClientEndRow
我知道,我使用的代碼采用上面列的整行,但是當我改變entireColumn對Range(ClientStartRow & ":" & ClientEndRow)他有一個錯誤,所以我下一步該怎么做難住了。
- 我想做的另一個步驟是過濾 ClientStartRow 和 ClientEndRow 的結果以洗掉字串為 5 或更大的值。我有 0 線索如何解決這個問題。因此,如果您能對此提供幫助,將不勝感激。
Sub Client_CRM()
Dim ClientStartRow As Long, ClientEndRow As Long
Dim Listed As Long
Set PortfolioRange = Worksheets("Client Paste").Range("A:M")
Set PPSExport = Range("A2:M2")
With Sheets("Client Paste")
Sheets("Output Sheet").Cells.Clear
Worksheets("Client Paste").Activate
ClientStartRow = Worksheets("Client Paste").Range("A3").Row
ClientEndRow = Worksheets("Client Paste").Range("A:A").Find(What:="Totals", after:=.Range("A3"), LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False).Row
' Range(ClientStartRow & ":" & ClientEndRow).Select
For Each cell In PPSExport
If cell.Value = "Asset" Then
cell.EntireColumn.Copy
ActiveSheet.Paste Destination:=Worksheets("Output Sheet").Range("A:A")
End If
If cell.Value = "Quantity" Then
cell.EntireColumn.Copy
ActiveSheet.Paste Destination:=Worksheets("Output Sheet").Range("B:B")
End If
If cell.Value = "Market value" Then
cell.EntireColumn.Copy
ActiveSheet.Paste Destination:=Worksheets("Output Sheet").Range("C:C")
End If
If cell.Value = "Portfolio weight %" Then
cell.EntireColumn.Copy
ActiveSheet.Paste Destination:=Worksheets("Output Sheet").Range("D:D")
End If
Next cell
Sheets("Output Sheet").Select
End With
End Sub
手頭的錯誤是我只想將值從ClientStartRow并ClientEndRow復制到“輸出表”而不是整個列。我似乎無法找到解決此問題的方法。
uj5u.com熱心網友回復:
原因
cell.Range(ClientStartRow & ":" & ClientEndRow).Copy
失敗是因為該行嘗試指定相對于cell. 當cell不在 columnA中時,它超出了作業表的右側邊緣,因此出現錯誤
修復,改變
cell.EntireColumn.Copy
到
cell.EntireColumn.Range("A" & ClientStartRow & ":A" & ClientEndRow).Copy
筆記:
因為這是相對的
cell,所以A指定范圍的第一列cell,所以不要為其他列更新它Destination:=Worksheets("Output Sheet").Range("*:*")將始終從目標范圍的第 1 行開始粘貼。這是你想要的嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417857.html
標籤:
上一篇:拆分包含公式的Excel單元格
