翻译《Excel 2013 Power Programming with VBA》段落

The Module1 VBA module


The Module1 VBA module contains the declarations, a simple procedure that starts the utility, and a procedure that handles the undo operation.
Declarations in the Module1 VBA module
Following are the declarations at the top of the Module1 module:
Public Const APPNAME As String = “Text Tools Utility”
Public Const PROGRESSTHRESHOLD = 2000
Public UserChoices(1 To 8) As Variant ‘stores user’s last choices
Public UndoRange As Range ‘ For undoing
Public UserSelection As Range ‘For undoing


I declare a Public constant containing a string that stores the name of the application. This string is
used in the UserForm caption and in various message boxes.
The PROGRESSTHRESHOLD constant specifies the number of cells that will display the progress indicator.
When this constant is 2,000, the progress indicator will be shown only if the utility is working
on 2,000 or more cells.
The UserChoices array holds the value of each control. This information is stored in the Windows
Registry when the user closes the dialog box and is retrieved when the utility is executed again. Iadded this convenience feature because I found that many users tend to perform the same operation every time they use the utility.


Two other Range object variables are used to store information used for undoing.
The ShowTextToolsDialog procedure in the Module1 VBA module
The ShowTextToolsDialog procedure follows:
Sub ShowTextToolsDialog()
 Dim InvalidContext As Boolean
 If Val(Application.Version) < 12 Then
 MsgBox “This utility requires Excel 2007 or later.”, vbCritical
 Exit Sub
 End If
 If ActiveSheet Is Nothing Then InvalidContext = True
 If TypeName(ActiveSheet) <> “Worksheet” Then InvalidContext = True
 If InvalidContext Then
 MsgBox “Select some cells in a range.”, vbCritical, APPNAME
 Else
 UserForm1.Show vbModeless
 End If
End Sub


The procedure starts by checking the version of Excel. If the version is prior to Excel 2007, the user is 
informed that the utility requires Excel 2007 or later.
Note 
For simplicity, I made this utility an application for Excel 2007 or later. However, you can 
design this utility so that it also works with previous versions of Excel. 
If the user is running the appropriate version of Excel, the ShowTextToolsDialog procedure checks to 
make sure that a sheet is active, and then it makes sure that the sheet is a worksheet. If either one 
isn’t true, the InvalidContext variable is set to True. The If-Then-Else construct checks this variable 
and displays either a message (see Figure 14-4) or the UserForm. The Show method uses the 
vbModeless argument, which makes it a modeless UserForm (that is, the user can keep working in 
Excel while it’s displayed).
Part IV: Advanced Programming Techniques
Figure 14-4: This message is displayed if no workbook is active or if the active sheet isn’t a worksheet.
Note that the code doesn’t ensure that a range is selected. This additional error handling is included 
in the code that’s executed when the Apply button is clicked.



译文:


模块1:VBA模块
VBA模块包含声明,一个启动程序的简单过程,以及一个处理撤销操作的过程。
模块1 VBA模块的声明部分。
以下是在模块1顶部的声明内容:
Public Const APPNAME As String = “Text Tools Utility”
Public Const PROGRESSTHRESHOLD = 2000
Public UserChoices(1 To 8) As Variant ‘stores user’s last choices
Public UndoRange As Range ‘ For undoing
Public UserSelection As Range ‘For undoing

我声明一个包含存储应用名字的公共常量。这个字符串用在UserForm标题和各种消息框中。
PROGRESSTHRESHOLD常量描述进度指示器显示的单元格数量。
如果数字是2000,那么进度指示器只显示有2000或更多单元格的程序。
UserChoices数组保存每个控件的值。当用户关闭对话框这些信息存储在windows注册表中,再

打开程序的时候,信息会再次被检索到。我只所以添加这种方面的特性,是因为我发现许多用

户每次使用该程序的时候,更倾向于执行相同的操作。

另外两个对象变量是用来存储撤销操作的信息。

VBA模块中的内容展示工具对话框
内容展示工具条对话框过程如下:
Sub ShowTextToolsDialog()
 Dim InvalidContext As Boolean
 If Val(Application.Version) < 12 Then
 MsgBox “This utility requires Excel 2007 or later.”, vbCritical
 Exit Sub
 End If
 If ActiveSheet Is Nothing Then InvalidContext = True
 If TypeName(ActiveSheet) <> “Worksheet” Then InvalidContext = True
 If InvalidContext Then
 MsgBox “Select some cells in a range.”, vbCritical, APPNAME
 Else
 UserForm1.Show vbModeless
 End If
End Sub

程序首先检查的是Excel版本。如果是Excel 2007之前的版本,该程序将会告诉用户需要Excel 

2007或更高版本。

笔记:为了简单起见,我把这个程序升级到Excel 2007或更高版本。当然,您也可以设置下这个

程序让它支持以前版本的Excel。

如果用户正在使用的是当版本的Excel,ShowTextToolsDialog过程会检测,确保表单功能是是

正常工作的,然后确保该表单是一个工作表。如果其中任何一个是假的,InvalidContext变量

将设置为true。if - then - else结构检查该变量。并将结果以一个消息(见图14-4)或

UserForm的方式展示。使用vb非静态参数的方法展示一个非模态的UserForm(也就是说,信息展

示的时候,用户可可以继续操作Excel)。

第四部分: 高级编程技术

图14-4:如果没有工作表被激活或者激活的不是工作表,信息会被展示

请注意,不能确保一系列代码都被选中。这些额外的错误会在单击应用按钮的时候被处理。







内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值