在《VBA代码解决方案》一书完结后,我写了《VBA程序调试》一文,在文章中,我着重讲了如何进行程序的调试,这篇文章的内容其实是很深的,为了读者能更好地领会其中的意思,我将就几个重点的部分内容再做侧重地解释,这些内容和我编程搭积木的思想是一脉相承的,希望给朋友分享些有用的经验。程序的编写过程中,在第二册的85讲到89讲,我讲了程序优化的问题,其实在这些章节中,我也一直在讲视觉和程序运行时间的兼顾问题。我在做程序的时候,往往注重的是前者,而不是后者,为什么呢?其实VBA带给我们的就是实用,真正要求做到节约时间往往是那些大型程序考虑的范畴,正如我在讲到VBA地位时的比喻,那些大型程序是城市与城市之间的高铁啊、火车啊、飞机啊,而VBA只是连接车站到家之间的汽车、电动车,当你考虑大型数据处理时最好要借助大型程序,如Python、PHP、GO、JAVA等等,从严格意义上讲,VBA不能称之为一种独立的语言体系,只是寄生于OFFICE的一条寄生虫,但你不要小看它,这部分交通运行不顺畅,也会引起城市的拥堵,工作效率的低下。所以,我们在工作中主要考虑的是视觉的效果,其次才是时间的节约。如何做到视觉的愉悦呢?下面我就来就一段实际的程序和大家分享。今天的程序读者也可以作为一个工具利用。需求:建立一个工作薄1,写入代码,代码执行首先打开另外一个指定工作薄2,把其中工作表sheet1中A,B列的内容写入数组,然后关闭工作薄2,回到工作薄1,把数组数据保存到工作表1的CD列中。这个案例在实际工作中会经常用到,或者类似的应用非常多,大家可以记住下面的代码。要利用到的知识点:1 工作薄的打开;2 数据写入数组;3 数组数据的导出。今天我利用到了《方案》第三册第113讲的内容,将一个工作薄中工作表的数据写入数组,然后导出,看下面的代码截图:
代码:Sub mynzkk()Dim a(5000, 2)Workbooks.Open Filename:=ThisWorkbook.Path \工作表.xlsx '打开一个指定存储数据的工作薄Workbooks(工作表.xlsx).Activate '让数据的工作表处在激活状态MsgBox (数据已经打开,是否继续?) '判断是否继续Sheets(SHEET1).Selectk = 0i = 1'数组,并赋值Do While Cells(i, 1)k = k + 1Cells(i, 1).Selecta(k, 1) = Cells(i, 1) '写入数组a(k, 2) = Cells(i, 2)i = i + 1LoopWorkbooks(工作表.xlsx).Close '关闭数据工作薄Workbooks(工作簿1.xlsm).Activate '让主程序的工作薄处在激活状态Sheets(SHEET1).Select[C1:D65536].Clear '清除原有数据MsgBox (下面将写入数据,请确认!)For i = 1 To kCells(i, 3).SelectCells(i, 3) = a(i, 1)Cells(i, 4) = a(i, 2)NextMsgBox (OK!)代码讲解:上述代码中,为了照顾到视觉,我加了四条语句如下所示:
目的:2 让应用这个程序的人有个主动的感觉,好像是自己在操控着程序的运行。这也是从心理上来取悦程序的使用者。其实不加这些都是可以的。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.