返回列表 上一主題 發帖

[發問] 如何將A,B欄轉換成沒有空格及要特定排列之C,D欄

[發問] 如何將A,B欄轉換成沒有空格及要特定排列之C,D欄

如圖及附件 如何將A,B欄轉換成沒有空格及要特定排列之C,D欄

1. 去除A,B欄內空白之格
2. C欄之值是由大至小 D欄之值是同步於C欄(跟著C欄移位)
3. A,B欄之值是個變數 會依據設定方式而改變 故C,D欄之總格數也會跟著變
4. A,B欄之總格數 若是變數 會造成不易寫程式 那我可以固定 但最好也允許A,B欄之總格數可以是變數
5. 在此先感謝大家踴躍的提供方法 幫小弟我完成不可能的任務 (我已花費數天的精神與時間 但還是無法完成)


對應之可投入金額.jpg
2015-8-16 18:33



對應之可投入金額.zip (17.8 KB)

我弄了幾天還是卡在這 一直沒有進展 可否請高手賜教


對應之可投入金額.jpg
2015-8-16 21:33



對應之可投入金額.zip (31.5 KB)

TOP

回復 2# lcctno

你的數據用一般排序就可以做到了啊!不懂為什麼要寫成程式?
  1. Option Base 1
  2. Public Sub Ex()
  3. Set d = CreateObject("scripting.dictionary")
  4. aa = Cells(Rows.Count, 1).End(xlUp).Row
  5. bb = Cells(Rows.Count, 2).End(xlUp).Row
  6. Dim ar1()
  7. If aa < 2 Or bb < 2 Then Exit Sub
  8. If aa > bb Then
  9.     arr = Range("A3:B" & aa)
  10. Else
  11.     arr = Range("A3:B" & bb)
  12. End If

  13. For i = 1 To UBound(arr) - 1
  14.     For j = i + 1 To UBound(arr)
  15.         If arr(i, 2) > arr(j, 2) Then
  16.             r1 = arr(i, 1)
  17.             r2 = arr(i, 2)
  18.             arr(i, 1) = arr(j, 1)
  19.             arr(i, 2) = arr(j, 2)
  20.             arr(j, 1) = r1
  21.             arr(j, 2) = r2
  22.             
  23.         End If
  24.     Next
  25. Next

  26. For i = 1 To UBound(arr)
  27.     If arr(i, 1) <> "" And arr(i, 2) <> "" Then
  28.         n = n + 1
  29.         ReDim Preserve ar1(1 To 2, n)
  30.         ar1(1, n) = arr(i, 1)
  31.         ar1(2, n) = arr(i, 2)
  32.     End If
  33. Next
  34. [e3].Resize(UBound(ar1, 2), 2) = Application.Transpose(ar1)
  35. End Sub
複製代碼

TOP

回復 3# lpk187
我知道"用人工是很容易達成的" 但只要參數一改就得重新來過 且對非寫程式之人 跟本很難使用 甚至不會正確使用

非常感謝您的意見及公式 我先收下待測試 若有問題 我會再詢問您 謝謝您的幫助

TOP

回復 4# lcctno


    我上面程式多了一行Set d = CreateObject("scripting.dictionary")請自行刪除!         

TOP

本帖最後由 lcctno 於 2015-8-16 23:39 編輯

回復 5# lpk187
"我上面程式多了一行Set d = CreateObject("scripting.dictionary")請自行刪除!"

刪不刪結果是一樣  老實說我幾乎看不懂您提供之程式內容的含意 但我還知道將 "[e3].Resize(UBound(ar1, 2), 2) = Application.Transpose(ar1)" 改成[c3].Resize(UBound(ar1, 2), 2) = Application.Transpose(ar1) 才能對號入座

感謝您 可達到我要的內容了
但有一個問題 請問真的沒辦法不用VBA來執行嗎? 因為參數一改變 數值不會直接跟著變 還得必須要加上點一個按鈕 才能得到正確值 請問可有方法用一般函數來達成
最後除了謝謝您 還是要感謝您的熱心幫助
ps. 我目前在嘗試將我這幾年來做的統計分析所得的結果 轉換成資金配置的表格 只要簡單的輸入可投資的總金額 及配合累積發生率的參與時機 那表格就會自動告訴您買的配置方式
我已老了 這是為我的兒子寫的 怕他不會正確的使用 所以希望能讓沒基本知識的他也能容易使用
我不太會寫程式 因為學校完全沒學過Excell 但我知道怎麼於股市賺錢(是一定賺) 所以........

TOP

回復 3# lpk187

我遇到問題了 原附件上的A,B,C,D欄 在我真實的位置是T,U,V,W 修改了數小時 卻無法修改成功  再次的麻煩您了
另外請多加上一指令 於整理後要貼上之前 請先清空該欄位之全部數值(原之C,D欄 現在的V,W欄) 謝謝您了



對應之可投入金額.jpg
2015-8-17 08:53




對應之可投入金額1.zip (22.64 KB)

TOP

回復 7# lcctno


         可以先請教你嗎?,因為你說"因為參數一改變 數值不會直接跟著變"
可以告訴我在哪裡會改變?什麼情況下改變?
VBA其實都可以做的出來的!沒有"因為參數一改變 數值不會直接跟著變"的
也不一定要按鈕的!
以下列檔案中的程式來說,只要你改變T欄中除了T1和T2外的任何儲存格U欄和V欄也會跟著改變的!
而且不用按鈕,只限欄改變哦!若你的S欄也會變更的話,也可以加入的!

對應之可投入金額1.zip (27.29 KB)

TOP

本帖最後由 lcctno 於 2015-8-17 12:36 編輯

回復 8# lpk187
如附件 只用選擇性貼上值及格式及註解
-請看Sheet2左上方 黃格內之值皆可能更改

  謝謝您  麻煩您了

有些小問題
1.Sheet1內 u3及v3 為何會空白
2. 股價2.99          投入金額999 ,477
並未被代入u及v內


        00631L或0050之資金配置.zip (81.92 KB)
                 




   



TOP

回復 9# lcctno


    00631L或0050之資金配置 (1).zip (86.6 KB)

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題