作者:乔山办公网日期:
返回目录:excel表格制作
能再把你的问题描述清楚点吗?
看起来很简单的嘛,你的公式搞得那么复杂,
你就是要统计某两行之间的某列内的各数字的个数对吗?
代码示例如下,自行修改其中的参数,使其与你窗体的内容对接。
Sub test()
'整体设计思路:分析打印页码字符串,将要打印的页码队列,存入数组。然后通过循环实现逐份打印该队列中的每一页。
Dim f As Integer, s As String, arr, brr, Prr(1 To 10000), jl
f = 2 '打印份数对接变量
s = "1,3-5" '打印页码对接变量
jl = 0 '要进行打印输出的队列数量初始化
'------------------------开始分析打印页码设定--------------------
arr = Split(s, ",") '按逗号分拆
For i = 0 To UBound(arr)
brr = Split(arr(i), "-") '分析3-6之类e799bee5baa6e997aee7ad94e58685e5aeb9332页码设置
For j = Val(brr(0)) To Val(brr(UBound(brr)))
jl = jl + 1
Prr(jl) = j
Next j
Next i
For i = 1 To f '逐份输出
For j = 1 To jl
Sheet1.PrintOut Prr(j), Prr(j) '指定Sheet1发生打印操作
Next
Next i
End Sub
完整版都是有加密的,
混乱得很呀,里面根本没有A表、B表,能否说清楚点呢。
Option Explicit
Sub 导出()
Dim OutColArr()
Dim i, j, m, n
Dim stSrc As Worksheet, stDes As Worksheet
Set stSrc = Sheets("数据源")
Set stDes = Sheets("目标数e799bee5baa6e58685e5aeb9363据")
m = stSrc.UsedRange.Columns.Count
n = stDes.UsedRange.Columns.Count
'1.检查对应
ReDim OutColArr(1 To n)
For i = 1 To n
For j = 1 To m
If Trim(stDes.Cells(1, i)) = Trim(stSrc.Cells(1, j)) Then
OutColArr(i) = j
Exit For
End If
Next j
If OutColArr(i) = 0 Then
MsgBox "在 数据源 表中没有找到下面的列:" & stDes.Cells(1, i)
Exit Sub
End If
Next i
'2.开始导出
Workbooks.Add
Set stDes = ActiveSheet
For i = 1 To n
stSrc.Columns(OutColArr(i)).Copy stDes.Columns(i)
Next i
MsgBox "导出完毕。"
End Sub