查找名称为X的所有列并填充值,但递增每列

时间:2015-05-28 18:55:17

标签: excel excel-vba vba

我正在使用最新的Excel。

我有这样的结构:

| ID |  Day  |  Value | Day | Value | Day | Value.............| Day | Value |
   1             val           val            val                       val
   2             val           val            val                       val
   3             val           val            val                       val

我需要数据看起来像这样

| ID |  Day  |  Value | Day | Value | Day | Value.............| Day | Value |
   1     1       val     2     val     3      val                 N     val
   2     1       val     2     val     3      val                 N     val
   3     1       val     2     val     3      val                 N     val

基本上我需要转到第一天列并为所有ID添加1,然后转到第二天列并按1递增并为所有ID写入2。这将是重复的。手动我可以通过放1然后向下拖动,放2并向下拖动来做到这一点。问题是我有几千天的列,所以这将是非常耗时的。有没有自动化的方法来完成这项任务?

2 个答案:

答案 0 :(得分:1)

不是自动化但很快。假设/* Create a table type. */ CREATE TYPE MyTableType AS TABLE ( Column1 VARCHAR(50) , ........ ); GO /* Create a procedure to receive data for the table-valued parameter. */ CREATE PROCEDURE dbo. ValidateInputXML @TVP MyTableType READONLY AS -- Do what ever you want to do with the table received from caller GO /* Declare a variable that references the type. */ DECLARE @myTable AS MyTableType; -- Fill @myTable with data and send it to SP. insert into @myTable SELECT * FROM @tmpInput TI WHERE TI.EntryType = 'Attribute'; /* Pass the table variable data to a stored procedure. */ EXEC ValidateInputXML @myTable ; GO 在A1中。添加一行(比如Row1),其中包含Row2的系列填充和排序列。系列为ID填充Row3列并向下复制以适应。按行排序列并删除Row1。

答案 1 :(得分:1)

这是您可以使用的VBA代码(替换LastRow和LastCol的适当值):

columns.data