如何根据另一个单元格中的块值复制单元格中的值
我想拥有多个城市编号和给定数据中提供的块数量。这是我正在看的图像,以及我需要的样子。 image of what would be needed done如何根据另一个单元格中的块值复制单元格中的值
- 在列A中,你看到41288和在列B,其中在空塔看到一个由4
-
的整数值
可以说C,d,E,F,G,H。 ....我希望它在E和F列所示的单元格之间空出来。
所以,我相信问题是我如何在(A)中的整数和数字之间进行空格?
我知道那里必须有一个公式。但是,不知道在Google上问什么问题可以让你无处可去。
VBA的答案(它给你它在你之后的确切格式)如下:
Sub DigitBlocks()
Dim rng As Range, a As Double, b As Double, c As Double, d As Double, e As Double
Set rng = ActiveSheet.Range("A2").CurrentRegion
a = Val(Right(Left(rng.Address, InStr(rng.Address, ":") - 1), Len(Left(rng.Address, InStr(rng.Address, ":") - 1)) - InStrRev(Left(rng.Address, InStr(rng.Address, ":") - 1), "$"))) + 1
b = 3
For d = a To rng.Rows.Count
Range("E" & b).Value = Range("A" & d).Value
e = Range("B" & d).Value
For c = 1 To e
Range("F" & b + c - 1).Value = c
Next c
b = b + c
Next d
End Sub
鉴于意见修订后的要求,答案是现在:
Sub DigitBlocks()
Dim rng As Range, a As Double, b As Double, c As Double, d As Double, e As Double
Set rng = ActiveSheet.Range("A2").CurrentRegion
a = Val(Right(Left(rng.Address, InStr(rng.Address, ":") - 1), Len(Left(rng.Address, InStr(rng.Address, ":") - 1)) - InStrRev(Left(rng.Address, InStr(rng.Address, ":") - 1), "$"))) + 1
b = 3
For d = a To rng.Rows.Count
Range("M" & b).Value = Range("J" & d).Value
e = Range("K" & d).Value
For c = 1 To e
Range("N" & b + c - 1).Value = c
Next c
b = b + c
Next d
End Sub
哇谢谢。我实际上现在下载它。唯一的事情是在IRAQ互联网超级慢。 YOU GUYS ROCK –
oooo事实证明它是建立在....你认真摇滚它的作品非常棒。 –
不用担心。我只是提到这一点,因为你继续在2个答案之间作为接受的答案,只是为了让你意识到;你只能接受一个“答案”,但你可以多选一个。无论你想做什么,完全取决于你。 –
这不完全是你想要的格式,但我认为这是尽可能接近公式。
将这个到C2:
=IF(B2="","",IF(B2=1,"",B2-1))
自动填充C2下来,然后自动填充整列到右边。
这样您就可以:
41288|4|3|2|1
然后,您可以复制&转得到以下格式
|41288|41289|41290|
| 4 | 5 | 6 |
| 3 | 4 | 5 |
| 2 | 3 | 4 |
| 1 | 2 | 3 |
| | 1 | 2 |
| | | 1 |
HTH
编辑:
请注意,即使细胞最后看起来是空的,那里还有公式,如果您自动填充“太远”。您可以复制&首先粘贴值,然后稍后转置,如果您希望单元格完全空白。
在公式和解释中编辑了一个错误,现在应该工作。 –
让我试试这听起来不错 –
我把它放入c2,它吐出来,我们发现一个问题..... –
在VBA中应该很容易。这是一个选择吗? –
视觉基础我可以得到是的。但不知道如何。并将它仍然出口到Excel格式? –
是的,您只需循环查看A和B列中的内容,然后为E&F添加值即可。它将位于同一个Excel文件中。 –