首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带条件复制/粘贴的Do While循环- Excel VBA -代码不工作

带条件复制/粘贴的Do While循环- Excel VBA -代码不工作
EN

Stack Overflow用户
提问于 2020-04-29 22:42:28
回答 1查看 491关注 0票数 0

我有一组复杂的要求,并且正在尝试开发一段合适的Excel VBA代码。我是一个初学者,所以任何关于这个问题的建议都将非常感谢。

背景:“A公司”表列出了部门、薪级和职位(A-C栏)。"Company B“工作表列出了他们的职务的所有上述内容,但在D和E列中,还指定每个职务是否与公司A的职务匹配(D列),如果是,则指定哪个(E列)匹配,或者是否没有匹配,然后E列单元格为空。

目的:我想将公司B中的职务与公司A中的职务相匹配,并将这些匹配的公司B中的职务作为D-F列中的链接复制/粘贴到“公司A”工作表中,但有一个问题!

问题:在每个公司中都有多个职位具有相同的部门-薪资等级-职称组合,并且这些数字在公司之间不匹配,例如在公司A中有4个职位,但在公司B中只有3个匹配的职位。我希望我的代码知道只复制公司B的职位三次,并将第四行留空(以直观地指示三个匹配的职位和第四个没有匹配的职位)。为了实现这一点,我在每个公司的每个部门中都有相同薪资级别的职位数量,并希望将这些数字用作Do While循环的计数器。

我写的代码:

代码语言:javascript
运行
复制
 Private Sub CommandButton6_Click()

    Dim counter As Integer
    Dim myNum As Integer

    a = Worksheets("COMPANYB").Range("A" & Rows.Count).End(xlUp).Row
    Worksheets("JobNumbers").Range("D:D").Value = counter
    Worksheets("JobNumbers").Range("C:C").Value = myNum

    Do While counter < myNum
        For i = 2 To a
            If Worksheets("COMPANYB").Range("D" & i).Value = "Match" And _
            Worksheets("COMAPNYB").Range("E" & i).Value = Worksheets("COMPANYA").Range("C" & i).Value Then
            Worksheets("COMPANYB").Range("A" & i & ":C" & i).Copy
            Worksheets("COMPANYA").Activate
            b = Worksheets("COMPANYA").Range("D" & Rows.Count).End(xlUp).Offset(0, 3).Row
            Worksheets("COMPANYA").Range("D" & b + 1).Select
            ActiveSheet.Paste Link:=True
        End If
        Next i
        counter = counter + 1
        myNum = myNum - 1
    Loop
End Sub

While不工作,它只是在我的"JobNumbers“表中将全0放在列中,我希望它从哪里获取我的计数器和myNum来设置Do While循环的测试。正如你所看到的,我甚至没有读到我想要做的“复制时将行留空”这件事,因为我被这个问题卡住了。我也开始怀疑我是不是对VBA期望太高……

我认识到这是一个很大的文本,我真的道歉-我将感谢任何反馈/帮助,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-29 23:15:41

=是一个赋值运算符。它将"0“写入列中的每个单元格的原因是因为Worksheets("JobNumbers").Range("D:D").Value引用了整个列D中的每个单元格。然后,您可以通过编写=将变量counter赋给所有这些单元格

除此之外,您将counter定义为一个整数,但是没有给=赋值,所以它一开始是空的,并且不会改变。而赋给单元格的值为空的整数将使该单元格的值为0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61504561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档