Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3515|回复: 3

[已解决]宏代码中,固定步长的行列变量,如何表达?

[复制链接]
发表于 2021-3-18 19:17 | 显示全部楼层 |阅读模式
本帖最后由 lijian8003 于 2021-3-18 19:25 编辑
  1. Sub test()
  2. Application.ScreenUpdating = False
  3. Dim cell As Range, xRng1 As Range, xRng2 As Range
  4. Dim i As Integer
  5. i = 1
  6. Set xRng1 = Range("B1:B1000")
  7. Set xRng2 = Range("A1:A1000")
  8. For Each cell In xRng2
  9. If cell.Value <> "" And WorksheetFunction.CountIf(xRng1, cell.Value) = 0 Then
  10. If WorksheetFunction.CountIf(xRng2, cell.Value) > 2 Then Range("B" & i) = cell.Value: i = i + 1
  11. End If
  12. Next
  13. Application.ScreenUpdating = True
  14. End Sub
复制代码
问题一:列为变量
Range("B1:B1000")
Range("B" & i)
步长=1
B C D E F...依次各列的变量,如何表达?
Range("B1:B1000")        Range("C1:C1000")        Range("D1:D1000")...
Range("B" & i)        Range("C" & i)        Range("D" & i)...

问题二:行为变量
Range("A1:A1000")
步长=10
Range("A1:A1000")        Range("A11:A1010")        Range("A21:A1020")...
各行的变量,如何表达?

最佳答案
2021-3-18 20:34
本帖最后由 砂海 于 2021-3-18 20:38 编辑

Cells 不用列标 , 比range容易控制
====================
Range("B3")
Cells( 3 , 2 )
------------------------------------------
Range("A1:C3")
Range(cells(1,1),cells(3,3)).Select
----------------------------------------------------------------------------------------------
也可以 range("A1").Offset( 偏移行 , 偏移列).resize( 行数 , 列数)来表达
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2021-3-18 20:34 | 显示全部楼层    本楼为最佳答案   
本帖最后由 砂海 于 2021-3-18 20:38 编辑

Cells 不用列标 , 比range容易控制
====================
Range("B3")
Cells( 3 , 2 )
------------------------------------------
Range("A1:C3")
Range(cells(1,1),cells(3,3)).Select
----------------------------------------------------------------------------------------------
也可以 range("A1").Offset( 偏移行 , 偏移列).resize( 行数 , 列数)来表达
回复

使用道具 举报

 楼主| 发表于 2021-3-18 20:49 | 显示全部楼层
砂海 发表于 2021-3-18 20:34
Cells 不用列标 , 比range容易控制
====================
Range("B3")

谢谢,学习了。
回复

使用道具 举报

发表于 2021-3-19 12:10 | 显示全部楼层
Range("B1:B1000").offset(0,1)就是 Range("C1:C1000")
Range("B1:B1000").offset(10,0)就是 Range("B11:B1010")
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 05:22 , Processed in 0.243716 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表