你不用统计分析的话,用筛选或者数据透明视不是更方便
当然,如4L所说的,用VLOOKUP也行(对寄件人使用)
写代码不难,下面给一个框架,你适当修改后用:
Option Explicit
Sub 复制数据()
Dim st As Worksheet, st2 As Worksheet, arr, i, n
Set st2 = Sheets(“汇总”)
n = 1
For Each st In Sheets
If st。Name <> “汇总” Then
arr = st。UsedRange
For i = 1 To UBound(arr)
If arr(i, 14) = “3月24日” Then
st。Rows(i)。Copy st2。Rows(n)
n = n + 1
End If
Next i
End If
Next st
End Sub
两个地方要修改,一是汇总表的名称,二是N列如果是日期类型判断语句要改为DateSerial(2019,3,24)
一般数据保存到另一个表格中,都用筛选匹配的行,然后copy到另一个表,
你可以新录制一个宏,把你筛选和复制的过程记录下来,然后保存宏,一次同样操作时,就用这个宏操作了。
如果有一些修改,就Alt+F11,打开VBE编辑器,然后在里面小修改一下。一般都是改筛选条件或表格名称等,怕搞错,就多录制几个宏。以后每次重复操作都可以用宏来实现。
你另一个工作表输入的条件是怎么样的?
你用高级筛选就做到你的需求了。
如果你一定要用VBA,可以用单元格事件完成,
以下代码在查询表的A1输入你的条件,就自动得到查询的结果(代码粘贴到查询表对应的编辑栏中)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr, brr(), x&, y&, i&, str1$
If Target。Address = “$A$1” Then
str1 = Target。Value
arr = Sheets(“价格表”)。UsedRange
For x = 1 To UBound(arr)
If arr(x, 1) = str1 Then
i = i + 1
ReDim Preserve brr(1 To UBound(arr, 2), 1 To i)
For y = 1 To UBound(arr, 2)
brr(y, i) = arr(x, y)
Next y
End If
Next x
Range(“A3”)。Resize(65533, 255)。ClearContents
Range(“A3”)。Resize(UBound(brr, 2), UBound(brr)) = Application。Transpose(brr)
End If
End Sub
- 上一篇:cimatron怎么在一平面内做任意位置点
- 下一篇:FC重装机兵战车怎么换底盘?