|
楼主 |
发表于 2011-3-18 07:15
|
显示全部楼层
回复 22楼 qhllqhll 的帖子
老师您好在您空闲的时候帮我把您的代码整理到我想要的代码2里 谢谢
1、一下是您帮我写的代码 (在普通表里您的这段代码运行很好,实际到了我的表里就提示:无法识别的格式 我没办法了,只好再请您帮助)
On Error Resume Next
Dim ws As Worksheet, arr, wj As String
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets(2)
ws.Cells.ClearContents
wj = Dir(ThisWorkbook.Path & "\")
x = Val(InputBox("输入行号,行号大于等于4:"))
If x < 4 Then Exit Sub
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & wj
Sheets(1).Activate
arr = Range(Cells(x, 1), Cells(x + 99, "o"))
ws.Range("a4").Resize(UBound(arr), UBound(arr, 2)) = arr
Workbooks(wj).Close
Application.ScreenUpdating = True
2、再下面就是我想要的代码了
这个意思是:从“原表”的第一个表里复制选 (再加上原来我和您要求的那些:也就是:加上弹出的要输入行号的代码和不得小于4,每次之选100行和每次运行钱要清空(a4:o100)的代码),以数值方式粘贴在(我要的表.xls").里,这个名字可以不要改变。
Sub 异表复制()
Windows("原表.xls").Activate '这个("要复制的原表.xls")名字请改成通用名 ("*.xls")
Range("A4:103").Select ' 请把这里加上弹出要输入行号的对话框 同时加上if x <4就推出
Application.CutCopyMode = False
Selection.Copy
'一下可以不改动
Windows("我要的表.xls").Activate ' 这个("我要的表.xls").名字可以不用改名
ActiveWorkbook.RunAutoMacros Which:=xlAutoActivate
Range("A4").Select '以数值的方式粘贴在本表的 a4 里
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '以数值的方式粘贴
Range("C4").Select
End Sub
辛苦老师您了!再次感谢
[ 本帖最后由 qhllqhll 于 2011-3-18 07:52 编辑 ] |
|