在excel中,是否有方法使用公式、vb或c添加行或移动行
我有一个excel表格,其中有一个有序文本列和一个MoveToRow列。表的顺序正确,但我需要通过使用MoveToRow列在值之间添加空行来分隔行 例: excel中是否有方法使用公式或vb或c代码将动物字段移动或复制到第二列中列出的所需行 结果:在excel中,是否有方法使用公式、vb或c添加行或移动行,excel,vba,sorting,Excel,Vba,Sorting,我有一个excel表格,其中有一个有序文本列和一个MoveToRow列。表的顺序正确,但我需要通过使用MoveToRow列在值之间添加空行来分隔行 例: excel中是否有方法使用公式或vb或c代码将动物字段移动或复制到第二列中列出的所需行 结果: 1. 2.cat 3.dog 4. 5.rat 或者,如果可能的话,我可以将MoveToRow列更改为InsertThismanyRowAfter列 我认为类似这样的代码会循环通过一个整数列,该列包含要插入的行数,低于当前行
1.
2.cat
3.dog
4.
5.rat
或者,如果可能的话,我可以将MoveToRow列更改为InsertThismanyRowAfter列
我认为类似这样的代码会循环通过一个整数列,该列包含要插入的行数,低于当前行数,如果值为0,则跳过该列,但如果值>=1,则插入该行数。但这并不能正常工作,因为它添加了太多的行,并且都在同一范围内。这里的逻辑哪里不正确
Sub Test1()
Dim x As Integer
Dim y As Integer
Dim z As Integer
' Set numrows = number of rows of data.
' NumRows = Range("A2", Range("A2").End(xldown)).Rows.Count
NumRows = 100
' Select cell a1.
Range("I1").Select
' Establish "For" loop to loop "numrows" number of times.
For x = 1 To NumRows
' Insert your code here.
' Selects cell down 1 row from active cell.
y = ActiveCell.Row
z = ActiveCell.Value
If z >= 1 Then
Rows(y & ":" & y + z).Insert Shift:=xlShiftDown
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Next
End Sub考虑到您发布的示例,这对我来说很好
Public Sub ReverseLoop()
Dim sht As Worksheet
Dim LastRow As Long
Dim r As String
Dim x As Long
Dim NumList As Variant 'Array
Dim RegExpObj As Object
Dim NumStr As Integer
Set sht = ActiveSheet
'Ctrl + Shift + End
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
'Loop Through 0-100 in Reverse Order
For x = LastRow To 1 Step -1
strIn = Range("A" & x).Value
Set RegExpObj = CreateObject("vbscript.regexp")
With RegExpObj
.Global = True
.Pattern = "[^\d]+"
NumStr = .Replace(strIn, " ")
End With
Cells(x, 1).EntireRow.Select
Selection.Cut
Cells(NumStr, 1).Select
ActiveSheet.Paste
Next x
End Sub
是的,有办法如果这不是你期望的答案,那么你问错了问题。请注意,因为这不是免费的代码编写服务,所以有必要通过显示代码来显示您迄今为止所做的尝试、遇到的困难或错误,或者至少显示您所做的研究和努力。否则它只是要求我们为你做所有的工作。阅读可以帮助你改进你的问题。你也应该把你的范围缩小到一种语言。你在用VB吗?VBA?还是C?提示:这不能用公式完成。我用当前代码更新了原始帖子。
Public Sub ReverseLoop()
Dim sht As Worksheet
Dim LastRow As Long
Dim r As String
Dim x As Long
Dim NumList As Variant 'Array
Dim RegExpObj As Object
Dim NumStr As Integer
Set sht = ActiveSheet
'Ctrl + Shift + End
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
'Loop Through 0-100 in Reverse Order
For x = LastRow To 1 Step -1
strIn = Range("A" & x).Value
Set RegExpObj = CreateObject("vbscript.regexp")
With RegExpObj
.Global = True
.Pattern = "[^\d]+"
NumStr = .Replace(strIn, " ")
End With
Cells(x, 1).EntireRow.Select
Selection.Cut
Cells(NumStr, 1).Select
ActiveSheet.Paste
Next x
End Sub