|
本帖最后由 猪腰子 于 2020-3-5 15:21 编辑
求高手指点。新手自学VBS有点不太懂,论坛里没找到解决方法。原理是sheet1中的工资表,比对sheet2中的薪酬分级,分级的值相互有覆盖,向下取值。
我套了三层for循环以后,原本设定是从sheet2左下往右上挨个比对,结果比对上的时候里面两个循环跳出不了了。。。用exit for好像也不起效果。
代码贴在下面,搞不懂exit for是不是跟next一样和for一一对应,但是好像不管放在哪里都没啥用。求高手指点迷津
- Sub 薪酬分级()
- Dim Z&
- Dim i%, j%, k%
- Z = Range("A5000").End(xlUp).Row '表格sheet1中,从A25000开始自下而上获取第一个非空数据,a为其行数
- For k = 2 To Z
- For i = 2 To 8
- For j = 2 To 8
- If Sheets("sheet1").Cells(k, 2).Value <= Sheets("sheet2").Cells(10 - i, j).Value Then '如果单元格(K,2)的值小于等于单元格(i,j)的值,则
- Cells(k, 3) = (Sheets("Sheet2").Cells(1, j) & "-" & Sheets("Sheet2").Cells(10 - i, 1)) '返回单元格(K,3)=单元格(i,1)&单元格(1,j)
- ElseIf Sheets("sheet1").Cells(k, 2).Value <= Sheets("sheet2").Cells(10 - i, j + 1).Value Then '如果单元格(K,2)的值小于等于单元格(i,j+1)的值
- Cells(k, 3) = (Sheets("sheet2").Cells(1, j + 1) & "-" & Sheets("sheet2").Cells(10 - i, 1)) '返回单元格(K,3)=单元格(i,1)&单元格(1,j+1)的值
- Exit For
- End If
- Next
- Next
- Next
- End
复制代码
|
|