VBA查找具有数值的所有行并返回列标题

时间:2014-11-07 14:26:54

标签: excel vba excel-vba

我尝试转换一个电子表格,其中包含第2行的日期和第B列的名称。每个人的工时都列在工作日期下的各行中。 我想将其转换为新选项卡中的数据行,其中包含列:名称,日期,工作小时数。

到目前为止,我已经使用VBA提取所有名称并将其复制到B栏中,以表示工作小时数(即如果他们已经工作3天,他们的名字列出3次) 。但我仍然需要弄清楚如何将工作日期和时间返回到第二页。第一张图片是原始页面。其次是理想的布局。

1 个答案:

答案 0 :(得分:0)

我解决这个问题的方法是执行以下操作:

  1. 将源表中的相关范围加载到维数h x w的数组中。让我们调用数组源(h,w)。
  2. 此数组应具有以下属性:
    1. 左上角的单元格(或来源(0,0))不应具有任何相关值。
    2. 左侧列中的值或源(x,0)中的所有内容应该是员工的名称,从第二行开始(如果您使用Option,则为源(1,0))基数0,这是默认值。
    3. 顶行中的值或源(0,y)中的所有值应为周。同样,您需要从第二列开始(这将在源(0,1)中),因为第一列是空的。
    4. 阵列其余部分的值是他们工作的天数和小时数。
  3. 创建一个新数组,第一个维度的长度为h * w,第二个维度的长度为3,并使用此数组存储下一步的结果。
  4. 现在你已经填充了这个数组,你可以使用两个嵌套的For循环遍历它,从源(1,1)的值开始。循环遍历此数组时,您需要捕获以下值:
    1. source(x,0) - 这是员工姓名
    2. source(0,y) - 这是员工周
    3. source(x,y) - 这是员工工作的天数和小时数
  5. 如果这有用,请告诉我。