这是我的问题:
每天我都会收到一张行数可变的excel表格。有些天它是100行,其他日子它是50行,但总是,列包含12列中相同类型的数据。
我将结果(在2个空行之后)粘贴到原始数据下方,然后我处理工作表中的列以修改一些数据并在之前发送。
这是一个包含3行,每行4列的示例表:
1001 100 1 100
1002 100 2 200
1003 101 1 300
我需要得出一个结果,其中第一列中的项目增加500,第二列中的项目增加50,第三列中的项目只是复制,第四列中的项目是递增10 ....依此类推12列。结果是在两行空行后粘贴...所以最终结果看起来像这样:
1001 100 1 100
1002 100 2 200
1003 101 1 300
(空行1)
(空行2)
1501 150 1 110
1502 150 2 210
1503 151 1 310
正如您所看到的......某些列“按原样”粘贴在原始数据下方,其他列根据原始值进行更改并应用计算。问题是我不知道原始列表每天包含多少行,并且由于源行数未知,我尝试使用公式来解决此问题仍然失败。
我知道如果我使用Visual Basic循环,我可以在单元格中插入公式,使表格符合我的要求,但我不知道从哪里开始。以前有人见过这样的事吗?我不想使用excel公式,因为我的工作表大小是可变的,有时需要一些逻辑来整理。 (我不能只将excel公式复制并粘贴到每一行,我需要在函数中使用逻辑来计算当天发生的事情)
谢谢大家,你在这里是一个很棒的社区!
杰米
答案 0 :(得分:0)
我希望你是VBA的新手。下面的代码满足您的第一个条件(第一列增加500)
Sub test()
Dim erange As Range
Dim lrow As Integer
With ActiveSheet
lrow = .Range("A" & Rows.Count).End(xlUp).Row
For Each erange In .Range("A1:A" & lrow)
erange.Offset(lrow + 2, 0).Value = erange.Value + 500
Next erange
End With
End Sub
你应该尝试编码休息..如果你发现任何困难我知道
第2节
如果你想用其他字符串替换特定字符串,那么你可以使用替换函数。下面是示例
erange.Offset(lrow + 2, 0).Value = Replace(erange.Value, "_incomplete", "_processing")