如何使用Excel中一个选项卡上的列表在另一个选项卡中创建新列?

时间:2018-09-11 22:41:27

标签: excel vba customization

在MS Excel中创建可自定义表格时,我需要一些帮助。

我正在尝试整理一个MS Excel电子表格,以跟踪我们日常运营中的某些指标。我希望该文件在指标组合方面具有一定的灵活性,以便在完成后可以对其进行跟踪。

我在电子表格中有一个标签,其中包含我要跟踪其信息的各种指标,并且我希望能够简单地进入该标签,在相应标签中输入“ x”来标记相关条目它们旁边的单元格,并在文件的主标签中为以此方式标记的每个条目添加一列。这些条目的任何值都将手动输入到主选项卡中相应子集的行中,这些子集是主选项卡中的永久单元格值。我只希望能够在一个选项卡中创建一个自定义表,并根据第二个选项卡中所需/标记的数据使用适当的列。我知道这将需要对一些宏进行编程,但是我不知道如何创建一个宏,该宏将允许我单击电子表格中的一个按钮,然后让电子表格为在辅助选项卡中选择的每个值自动添加列。 / p>

我如何编程一个宏,该宏使在电子表格中可以按下一个按钮,然后该宏将在它们旁边查找带有“ x”标记的所有单元格,并使用每个单元格的值在tab1中创建一个新列在tab2中作为tab1中表格的标题?我无法在线找到有关哪些编码命令将执行该任务的任何信息,并且由于Excel中除了查找标题信息并将其自己写入相关单元格外没有其他方法可以完成此操作,因此我找不到任何关联也可以帮助我自己解决这个问题。

1 个答案:

答案 0 :(得分:0)

这是宏代码。

Excel设置:

  1. 您的值列表应显示在“ Sheet2”的A和B列中
  2. 限制为20个值,如果列表中有更多值,请修改代码
  3. 值将被复制到“ Sheet1”,第1行从B列开始
Sub CreateTable()
'
' CreateTable Macro
'

'
Dim rng1 As Range, rng2 As Range, cell As Range
Dim i As Integer, destCol As Integer, limit As Integer

destCol = 2
limit = 20

'Clear values from the Column headers that already exist from previous run
For i = 2 To limit + 2
    Cells(1, i) = ""
Next i

'Write new column headers based upon the updated list
For i = 1 To limit
    If Worksheets("Sheet2").Range("B" & i) = "x" Then
        Cells(1, destCol).Value = Worksheets("Sheet2").Range("A" & i)
        destCol = destCol + 1
    End If
Next i

End Sub