返回列表 上一主題 發帖

[發問] 如何將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. 在此先感謝大家踴躍的提供方法 幫小弟我完成不可能的任務 (我已花費數天的精神與時間 但還是無法完成)





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

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





對應之可投入金額.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欄) 謝謝您了







對應之可投入金額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

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題