Excel:数据透视处理-从单列提取到多列
我有一个需要格式化处理的值列表,数据的格式不适合它的当前形式 这些值当前的格式如下: 记录太多,无法手动尝试此操作。使用公式或VBA自动化流程的最佳方法是什么 编辑:C3:C4中的值针对工作表中的每组记录显示。它们下面的单元格数量可以从1到3000不等 谢谢你的帮助 编辑:蒂姆,你帮了我很大的忙,我非常感谢你。但是,由于某种原因,编辑后的版本不起作用。在任何情况下,我都对其进行了非常基本的修改,以循环并清空我不希望标记的单元格值。再次感谢Excel:数据透视处理-从单列提取到多列,excel,excel-formula,vba,Excel,Excel Formula,Vba,我有一个需要格式化处理的值列表,数据的格式不适合它的当前形式 这些值当前的格式如下: 记录太多,无法手动尝试此操作。使用公式或VBA自动化流程的最佳方法是什么 编辑:C3:C4中的值针对工作表中的每组记录显示。它们下面的单元格数量可以从1到3000不等 谢谢你的帮助 编辑:蒂姆,你帮了我很大的忙,我非常感谢你。但是,由于某种原因,编辑后的版本不起作用。在任何情况下,我都对其进行了非常基本的修改,以循环并清空我不希望标记的单元格值。再次感谢 Sub Tester() Const STATUS_
Sub Tester()
Const STATUS_FLAG As String = "status code:*"
Dim v1, v2
Dim c As Range
Dim sht As Worksheet
Set sht = ActiveSheet
Application.ScreenUpdating = False
For Each c In sht.Range(sht.Range("C1"), sht.Cells(Rows.Count, 3).End(xlUp))
If c.Value Like STATUS_FLAG Then
v1 = c.Offset(-2, 0)
v2 = c.Offset(-1, 0)
ElseIf c.Value Like "http:*" Then
c.Offset(0, -2).Value = v1
c.Offset(0, -1).Value = v2
End If
If c.Value Like STATUS_FLAG Then
c.Offset(-2, -2).Value = ""
c.Offset(-2, -1).Value = ""
c.Offset(-1, -2).Value = ""
c.Offset(-1, -1).Value = ""
End If
Next c
Application.ScreenUpdating = True
End Sub
编辑:不填写“源”路径(v1、v2)旁边的内容
您期望的格式是什么?@nutsch评论中的+1。请在之前的之外,在之后发布一个的屏幕截图,我们可以更轻松地提供帮助。谢谢您的提问。原始格式的数据在A列和B列中没有值,需要我在相应位置引用的单元格值。我使用了单元格引用,因为这些值可能令人困惑——如果有帮助的话,我下次会在两张图片中发布它。我希望这能让事情变得更清楚,但如果不清楚,请告诉我。我想你需要VBA。到目前为止你尝试了什么?Tim非常感谢你(我做了一个小改动-'c.Offset(0,-1).Value=v2'-但它工作得非常出色。我对VBA还没有足够的信心来快速编写这些内容,所以我一直在尝试用一个公式来复制它,这被证明是困难的。它是针对正在粘贴的URL进行录制的,但我确信我能找到删除这些行的方法。再次感谢您的帮助-非常感谢迟到了。编辑了我的答案来解决这个问题。
Sub Tester()
Const STATUS_FLAG As String = "Status code:*"
Dim v1, v2
Dim c As Range
Dim sht As Worksheet
Set sht = ActiveSheet
Application.ScreenUpdating = False
For Each c In sht.Range(sht.Range("C1"), sht.Cells(Rows.Count, 3).End(xlUp))
If Len(c.Value)=0 Then
'reset on blank row
v1=""
v2=""
ElseIf c.Value Like STATUS_FLAG Then
v1 = c.Offset(-2, 0)
v2 = c.Offset(-1, 0)
ElseIf c.Value Like "http:*" and Len(v1)>0 Then
c.Offset(0, -2).Value = v1
c.Offset(0, -1).Value = v2
End If
Next c
Application.ScreenUpdating = True
End Sub