access令两列运算得到新属性_VBA代码解决方案第123讲:利用单元格的Offset属性和Resize属性改变选择区域的大小...

c4751397ee2fa220e6321b0ebf788f6c.png

大家好,我们今日继续讲解VBA代码解决方案的第123讲内容:利用单元格的Offset属性和Resize属性改变选择区域的大小.我们在操作EXCEL时候,按下鼠标,拖动就会完成一个区域的选择,那么这个动作是否可以通过VBA代码来实现呢?

在上一讲中我们谈到了Offset属性,这个属性是单元格属性中应用灵活的一个属性,也非常好理解,当使用Offset属性时,改变选择区域的大小,就可以实现我们刚刚提出的问题。

假设开始选择的区域是A6:A15,如何 将选择区域向下移动两行,向右移动两列,然后再改变新选择区域的大小呢?假设新的选择区域应 该是C8:F9。Offest属性只能完成前面部分向下移动两行,向右移动两列这个动作,实现后面部分要求另外一个属性来完成。这个就是Resize属性

Resize属性的语法为:Range对象.Resize(RowSize,ColumnSize)

扩展特定的单元格,返回一个由参数RowSize和ColumnSize指定行列数的单元格区域。

其中:

a 参数RowSize指定新单元格区域的行数。若省略该参数,则新单元格区域的行数与原来相同。

Range('A1').Resize(1, 3).Select等价于代码:省略了第一个参数Range('A1').Resize(, 3).Select都将选择单元格区域A1:C1。

b 参数ColumnSize指定新单元格区域的列数。若省略该参数,则新单元格区域的列数与原来相同。

C 利用Resize属性对单元格进行扩张时,是以原单元格为起始点但包括原单元格本身的扩张。

我们可以结合Offset属性和Resize属性来回到上面的问题。在你结合这两个属性之前,

Range("A6:A15").Select

Selection.Offset(2, 2).Select

Selection.Resize(2, 4).Select

下面我们来分析上述代码的执行过程:录入代码如下

Sub mynzDM()

Sheets("sheet5").Select '定位在sheet5工作表

Range("A6:A15").Select

Selection.Offset(2, 2).Select

Selection.Resize(2, 4).Select

End Sub

代码截图:

c402766075c89151246094bc65b68aec.png

为了看到每个步骤我设置了断点。

点击执行:

1 截图1

fd437c0c8534251044917d7358898c6e.png

第一条指令选择区域A6:A15,当前活动单元格是A6。

2去掉代码Selection.Offset(2, 2).Select的断点,截图2

8f505c2a63187b210e2def586f8508d3.png

第二条指令将选区偏移到C8:C17。活动单元格C8处于原单元格A5的向下两行和向右两列(大家要记住这个两行和两列是不含原单元格的)。现在,活动单元格是C8。

3 去掉最后的断点,执行:

b795abd095a7c1b47e9dd737645340e0.png

最后一条指令将当前选区 改变大小,单元格区域C8:F9被选中了,而不再是C8:C17。此时的或多单元格是C8, Selection.Resize(2, 4).Select ,就是C8的单元格向下扩展两个,向右扩展4个(这时的扩展是将起始的活动单元格计算在内的)

当然,后面两行指令可以结合成下面方式: Selection.Offset(2, 2).Resize(2, 4).Select

上面的例子,别看简单,其实分成了三个步骤:

第一步:Offset属性计算得到新区域的起始点,

第二步:Resize 属性决定新选区的大小,

第三步:Select方法选取具体的单元格区域。

在我们实际程序的编写中会经常用到的指令是ActiveCell,会代替活动单元格的具体位置,这样一来你的程序会大大的简化。如代码:ActiveCell.Offset(-3, 0).Select 都是经常用到的。

今日内容回向:

1 Resize 属性的意义是什么?

2 如何改变选择的区域呢?

《VBA代码解决方案》终于可以和大家见面了,是我将一些非常实用的VBA内容结集成册,PDF文件,可以从中直接查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

2a16b06f39671a978393b19f82473a8d.png

ab1e3cdc4c9f66dac031f52c13723efd.png

b2c30e84947158f303eced577464c387.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在这个代码中出现的syntax error是指语法错误。具体地,在__tester__.java文件的第62行出现了一个语法错误。错误的具体描述是:“cannot find symbol”,表示找不到符号。而这个符号是“resize”。所以,代码在这个地方无法识别和找到resize这个方法或变量。 要解决这个问题,我们需要查看代码并确定是什么缺少了resize这个符号。首先,我们需要验证resize是否是一个方法还是一个变量。如果resize是一个方法,我们需要查找resize的定义部分,并确保它正确地被声明和实现。如果resize是一个变量,我们需要检查是否有一个与之对应的变量声明和初始化。 另外,我们还需要考虑resize这个符号是否属于当前作用域。在Java中,每个变量和方法都有其作用域,表示可以访问和使用这些变量和方法的代码块。如果resize的定义不在当前作用域内,那么我们需要引入并初始化resize所属的对象。 总之,syntax error: cannot find symbol错误通常是由于无法找到符号(变量或方法)的定义而引起的。我们需要检查代码,找出缺少resize符号的原因,并采取正确的措施来解决这个问题。 ### 回答2: 在给出的代码中,出现了语法错误。错误的位置发生在__tester__.java文件的第62行。 错误消息"cannot find symbol"表示找不到符号。具体来说,在第62行中使用了一个resize方法,但是该方法没有定义或声明过。因此,编译器无法找到resize方法所属的符号。 要解决这个错误,您需要确认resize方法是否存在,并且确保在使用之前已经正确定义和实现了该方法。如果resize方法是在其他文件中定义的,您需要确保正确地导入该文件。另外,也需要检查resize方法的参数和返回类型,以确保它们与调用处的期望一致。 总之,根据给出的错误信息来看,首先应当检查resize方法的存在性、定义性和导入性。如果这个方法确实不存在或者定义有误,需要进行相应的修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值