我想做一个帮表的VBA,用你教的方法套用后发现有不对的地方请指点
=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
其他回答
暂无其它回答!