最强报表之“彪悍”的COPY命令
关键字:EXCEL云平台,EXCEL开发 发布时间:2022/9/20 作者:Excel培训管理员
在实际工作中,常常需要将EXCEL文件导入到高士达云平台中,用户希望单击一个按钮,选择导入文件,然后一堆数据就“躺”在面前。为此尝试过不少方法,比如数组变量法、模拟手工复制粘贴法等。今天终于找到一个比较强悍的命令一次性导入。
代码示例:
Sub zps029_copy()
''-------------------程序思路
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim obj As Object
Dim R As Long ''统计行数的变量
''--------清空初始数据
R = Application.WorksheetFunction.CountA(Range("B7:b20"))
If R > 1 Then
''获取高士达EXCEL数据管理平台的编程接口
Set obj = Application.COMAddIns.Item("prjAddin.Office_Addin").Object
''通过接口调用execFormula_Update
obj.execFormula "清空上次导入数据zps029"
End If
Dim Myfile As String
Myfile = Application.GetOpenFilename
Application.Workbooks.Open Myfile
R = Application.WorksheetFunction.CountA(Sheets(1).Range("b2:b50000"))
If R >= 2 Then ''超过2行,进行特殊处理
ThisWorkbook.Activate
Sheet1.Select
Range("B7").Select
''获取高士达平台的编程接口
Set obj = Application.COMAddIns.Item("prjAddin.Office_Addin").Object
''通过接口调用ExpandRepeatArea_R
obj.ExpandRepeatArea_R R - 2
ActiveSheet.Unprotect "111"
End If
Workbooks(Workbooks.Count).Activate
Range("A2:AJ2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Destination:=ThisWorkbook.Sheets("ZPS029项目数据导入").Range("b7")
ActiveWorkbook.Close
ActiveSheet.Protect "111"
Application.ScreenUpdating = True
MsgBox "共" & R & "行数据获取成功!" & vbNewLine & "请尽快单击导入按钮导入到本系统!"
End Sub
彪悍的语句:
Selection.Copy Destination:=ThisWorkbook.Sheets("ZPS029项目数据导入").Range("b7")
不经过剪切板,直接从一个工作簿复制到另一工作簿!
效率比以前大大提高!!!
如果你也希望做出最强EXCEL报表,实现多人填报、一键报表、 权限控制,请联系我们。