在Excel中提取数据并在另一个工作表中转置/格式化它

时间:2009-10-15 17:04:20

标签: excel vba excel-vba

我是新来的,并且被认为是程序员最佳网站的人提到了这个网站。我也认为这是!!

我是VBA和Excel宏的新手。 我希望使用包含13列和1000行的电子表格执行以下操作。

  1. 确定列A到J
  2. 中的唯一项目
  3. 将唯一项目移至新工作表
  4. 将新工作表上的数据从列移植到行
  5. 区分唯一的项目(行将由要修改的数据确定,其变化)​​
  6. 根据B到J列中的唯一项目对原始数据进行排序
  7. 并使用唯一项目后面的唯一项目和数据填充之前创建的新工作表
  8. 为每个填充数据创建小计
  9. 以下是以下格式:

          A     B     C     D      E       F     G       ... L   M
        1 Mike  mazer Male  White  London  SE    Barman  ... 36  4.52
    

3 个答案:

答案 0 :(得分:2)

是的,可以使用Excel宏记录常用的Excel命令。我建议熟悉宏录制器,然后前往superuser.com学习您可能需要录制的任何Excel命令。

步骤1-2可以通过以下方式完成:

https://superuser.com/questions/49614/excel-get-distinct-values-in-column

我个人记录了很多excel命令,只是为了看看它会吐出什么VB代码。这是学习VB的好方法

看起来你需要“转动”第3步的数据(在excel数据透视表上阅读)

for 7,查看Data> SubTotal命令。它有几种不同的配置方式。

答案 1 :(得分:0)

你的问题有很多部分。如果你分解这些部分并且只是询问给你带来困难的事情,这可能是最容易的。

虽然,如果你已经可以手动处理这个问题,我建议你只使用excel来记录一个宏(你可以在Visual Basic工具栏上找到这个函数),你运行所有的步骤,然后打开宏中的宏vba编辑器稍后调整代码。

当然,如果您遇到任何中间步骤,您可以随时提出另一个问题。这里的人很乐意提供帮助。希望有所帮助。

答案 2 :(得分:0)

您可以使用Application.WorksheetFunction.Transpose()函数来翻转值。

示例:对于整行,

Application.WorksheetFunction.Transpose("A1":"A1".End(xlToLeft))