我想做一个帮表的VBA,用你教的方法套用后发现有不对的地方请指点

原问题:我想做一个帮表的VBA,用你教的方法套用后发现有不对的地方请指点
分类:编程开发 > 最后更新时间:【2017-05-31 18:23:44】
问题补充:

=VLOOKUP(B2,K:L,2,0)‘这是帮表的函数,和列。

我套用你教的语句如下:_

Sub 绑表()

Columns("C:C").Select

Selection.Insert Shift:=xlToRight

'以上代码为插入整列

Range("C1") = "数量" 'C可以改变位置

Cells.Select

Selection.NumberFormatLocal = "G/通用格式"

Dim LastRow As Long, Counter As Integer

With ActiveSheet 'ActiveSheet表示活动工作表

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

End With

Range("C2").Select 'C可以改变位置

For Counter = 2 To LastRow

If Range("C2") = "" Then 'C可以改变位置

ActiveCell.FormulaR1C1 = _

"=VLOOKUP(RC[-1],C[8]:C[9],2,0)"

'修改商品编码和批号的位置R=Row=行C = Column = 列,$B$2要改成$I$2,R2C2要改成R2C9

End If

Range("C2").Copy 'J可以改变位置

Cells(Counter, 3).Select '“3”是确定求和列在表格的第3列

ActiveSheet.Paste

Next Counter

Columns("C:C").Select

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("C2").Select

'以上为去除公式代码“ActiveCell.FormulaR1C1 = _”去除后才能改变商品编码和批号的位置

End Sub

我想先锁定B列和K列内容一致为一个商品,再将L列的数量绑定到C列当中。

最佳答案

其实没有这么复杂。

Sub 绑表()

Columns("C:C").Insert Shift:=xlToRight

[C1] = [L1]

[C2] = "=VLOOKUP(B2,K:L,2,)"

[C2].AutoFill Destination:=Range("C2:C" & Range("B2").End(xlDown).Row)

Range("C2:C" & Range("B2").End(xlDown).Row).Copy

[C2].PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False

Columns("C:C").EntireColumn.AutoFit

End Sub

追答:
第一句:插入C列,为一空白列。第二句:C1单元格赋值,=L1单元格的值:“数量”。第三句:C2单元格输入首列查找公式。第四句:C列自动填充公式到B列的最后一行。第五句:复制C列有公式的单元格。第六句:在原位置粘贴值。第七句:取消复制模式,即取消复制区域的虚线闪烁框。第八句:设置C列宽度为自动,以显示其内容。
追问:
请问vba编辑器怎样能像你那样把每句变成黄色的,表格会自动跟着编辑器改变啊?太厉害了。 追答:
按F8
追问:
喔喔,谢谢你。
追问:
请问下我想在按钮里面添加确认窗体怎么做呢,就是点击按钮后会弹出窗体提示确定和取消,如果点击确定的话就执行上面的代码、反之点击取消就不触发上面的代码。可以给我写一个窗体的触发器吗?
  • 追答:
    第一语句写成如下样子即可:If MsgBox("如果运行程序就点击“确定”,否则,点击“取消”!", vbOKCancel) = 2 Then Exit Sub
    最佳答案由网友    提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    8

    分享到:

    其他回答

    暂无其它回答!

      推荐