返回列表 上一主題 發帖

[發問] 篩選?關鍵字?查詢?

回復 27# emma
是不是這樣效果?
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim Ar(), A As Range
  3. If Target.Address <> "$B$1" Then Exit Sub
  4. If Application.CountA(Range([A5], Cells(Rows.Count, 1))) > 0 Then
  5.    For Each A In Range([A5], Cells(Rows.Count, 1).End(xlUp))
  6.       ReDim Preserve Ar(s)
  7.       Ar(s) = Application.Transpose(Application.Transpose(A.Resize(, 8)))
  8.       s = s + 1
  9.     Next
  10. End If
  11.    
  12. With Sheet1
  13. If Application.Count(.Range("B:B")) > 0 Then
  14.    For Each A In .Range("B:B").SpecialCells(xlCellTypeConstants, 1)
  15.    ReDim Preserve Ar(s)
  16.    If A.Offset(, 8) = "V" And (A.Offset(, 9) > Date Or A.Offset(, 9) = "") And A > A.Offset(, 4) Then dot = Int(A / 1000) * 1000 Else dot = 0
  17.    k = IIf(Target = "總店", 10, 11)
  18.       If A < A.Offset(, 4) Then
  19.          m = "運費+手續費"
  20.          ElseIf A.Offset(, 5) = "推" And A > A.Offset(, 4) Then
  21.          m = "免運"
  22.          ElseIf A.Offset(, 5) <> "推" And A > A.Offset(, 4) Then
  23.          m = "運費"
  24.       End If
  25.    Ar(s) = Array(A.Offset(, 2).Value, A.Value, A.Offset(, 3).Value, dot, A.Offset(, 12).Value, A.Offset(, k).Value, m, A.Offset(, 6).Value)
  26.    s = s + 1
  27.    Next
  28. End If
  29. End With
  30. If s > 0 Then [A5].Resize(s, 8) = Application.Transpose(Application.Transpose(Ar))
  31. Range("A4").CurrentRegion.Sort key1:=[A4], Header:=xlYes
  32. End Sub
複製代碼
VBAtest7.rar (19.28 KB)
學海無涯_不恥下問

TOP

回復 30# emma

我覺得妳的需求不像是查詢資料
比較像是把資料檔工作表B欄有數値的列
經過處理後寫入查詢工作表
試試附件
VBAtest7.rar (17.2 KB)
學海無涯_不恥下問

TOP

回復 61# emma
  1. Function Read_Number(MyNum)
  2. n = Right(MyNum, 4)
  3. a = Array("拾", "百", "千")
  4. k = Len(n)
  5. i = k
  6. Do Until i = 0
  7.   If Val(Mid(n, i, 1)) > 0 And i < k Then
  8.      m = Mid(n, i, 1) & a(j): j = j + 1
  9.      ElseIf i = k Then
  10.      m = IIf(Val(Mid(n, i, 1)) = 0, "", Mid(n, i, 1))
  11.      Else
  12.      m = IIf(Val(Mid(n, i, 1)) = 0, "零", Mid(n, i, 1) & a(j))
  13.      j = j + 1
  14.   End If
  15.   t = m & t
  16.   i = i - 1
  17. Loop
  18. For i = 3 To 2 Step -1
  19.   t = Replace(t, String(i, "零"), "零")
  20. Next
  21. s = Val(Left(MyNum, Len(MyNum) - k))
  22. Read_Number = IIf(s = 0, "", Format(Val(Left(MyNum, Len(MyNum) - k)), "#,##0萬")) & t
  23. End Function
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題