根据命名范围插入和命名列

时间:2014-05-13 09:03:27

标签: excel vba excel-vba insert

上午,

我需要根据用户在列中填充的信息,将行插入到Excel电子表格表名称“Product”中。

用户信息填充到“评论”栏H4:H36的命名范围“SupReg”中。我还需要导入唯一的记录,不包括用户可能输入的任何空格。 SupReg Entry

对于“SupReg”中的每个条目,将3列插入到“产品”表中。 我有这方面的代码,我需要做的是命名每个插入的列,名称来自“SupReg”与以下后缀,Delivered Cost,Collect Cost,Kvi连接。

最终结果是

Result

我用于插入列的代码如下

Sub Supplier_Price()
Dim i As Integer
Dim i As Integer
Dim y As Integer
Dim SupplierReg As Variant


Set SupplierReg = Range("SupReg")

  MsgBox WorksheetFunction.CountA(Range("SupReg")) - 1 'To double check the SupReg qty
  x = WorksheetFunction.CountA(Range("SupReg")) - 1

 For i = 1 To x

      For y = 1 To 3 'Adds three columns for each SupReg entry
      Columns("Q:Q").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
     'Location of insert
     Next y

Next i
End Sub

任何其他意见将不胜感激。

由于 标记

1 个答案:

答案 0 :(得分:1)

Sub Supplier_Price()
Dim i As Integer
Dim y As Integer
Dim SupplierReg As Range, c As Range, tmp


    Set SupplierReg = Range("SupReg")
    For Each c In SupplierReg.Cells
        tmp = Trim(c.Value)
        If Len(tmp) > 0 Then
            For y = 1 To 3
                Columns("Q:Q").Insert Shift:=xlToRight, _
                          CopyOrigin:=xlFormatFromLeftOrAbove
            Next y
            Range("C1").Resize(1, 3).Value = _
               Array(tmp & " Delivered", tmp & " Collect", tmp & "Kvi")
        End If
    Next c


End Sub