返回列表 上一主題 發帖

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

回復 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

回復 4# lcctno


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

TOP

回復 7# lcctno


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

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

TOP

回復 9# lcctno


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

TOP

回復 11# lcctno


   


配置TEST.rar (64.66 KB)

TOP

回復 13# lcctno

Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
是屬於"工作表事件"的程序是不會在巨集中出現,會在巨集中出現的只有Module1、Module2... 或者是程序以Public Sub  xxxx  中才會出現   
而以Private Sub xxx開頭的程序也不會出現在巨集簿中,這裡請參考VBA說明,"Sub 陳述式"
Worksheet_Change工作表事件若要在其他的工作表中使用必須要整個複製過去,它是屬於私有領域的程序,以事件來觸發,而不是利用按鈕,這裡請參考VBA考說明中的Worksheet.Change 事件的

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題