首先,稍微搜索一下Google-Fu。我用一些VBA将Excel电子表格拼凑在一起。我绝不是一个编码员,也不是我的专业,但是,这是我基本了解的。也就是说,我一直把头撞在墙上。将填充单元格中的值仅复制到不同的工作表,而不会在最后一次填充的值后添加额外的行
我正在将数据从网站拖入Excel中的sheet1中,将其复制到sheet2,同时清理了一下数据,再次将其复制到sheet3以进一步隔离我需要的信息。 (我知道这是一个过于复杂的过程,但通过逐步完成,我对所发生的事情有了更好的理解,这有助于我学习)。
第一步,复制挖掘网站的数据到Sheet2中:
Sub DataReOrganizer()
Dim s1 As Worksheet, s2 As Worksheet
Dim Cook As Long, i As Long, K As Long, v As String
On Error Resume Next
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
Cook = s1.Cells(Rows.Count, "A").End(xlUp).Row
K = 2
For i = 1 To Cook
v = s1.Cells(i, "A").Text
If v = "Contact Information" Then
K = K + 1
Else
ary = Split(v, ": ")
If ary(0) = "Name" Then s2.Cells(K, 1) = ary(1)
If ary(0) = "License" Then s2.Cells(K, 2) = ary(1)
If ary(0) = "License Status" Then s2.Cells(K, 3) = ary(1)
If ary(0) = "City/State" Then s2.Cells(K, 4) = ary(1)
If ary(0) = "County" Then s2.Cells(K, 5) = ary(1)
If ary(0) = "Home Phone" Then s2.Cells(K, 6) = ary(1)
If ary(0) = "Work Phone" Then s2.Cells(K, 7) = ary(1)
If ary(0) = "Cell Phone" Then s2.Cells(K, 8) = ary(1)
If ary(0) = "Email Address" Then s2.Cells(K, 9) = ary(1)
If ary(0) = "Region" Then s2.Cells(K, 10) = ary(1)
If ary(0) = "Ever Been Disciplined?" Then s2.Cells(K, 11) = ary(1)
If ary(0) = "Note" Then s2.Cells(K, 12) = ary(1)
End If
Next I
End Sub
现在的信息是A列中不再是一个大的总质量,我将转到步骤2:现在,该信息复制到使用表Sheet 3在每列式(A - N)例如:
=IFERROR(SUBSTITUTE(LEFT(Sheet2!$A2,SEARCH(", ",Sheet2!$A2)),",",""),"")
的公式去每列行1500,这样做是为了保持在Sheet3的网站总是组织拉数据的变化量。我可能只有600行左右的数据,而其余的单元格,最多1500个,都是空白的。
这是我卡住的地方。我可以将这些值(减去公式)复制到sheet4。但是,它会复制填充值以及公式中没有计算值的单元格的900行左右。我搜索并找到了各种代码来删除空单元格,但它们不工作,或者我无法弄清楚如何调整它们以供我使用。无论我使用什么代码复制,它总是返回1500行,只有600个左右填充。我错过了什么吗?我甚至试图仅用值来复制新创建的工作表,该工作表仍然返回1500行。
***编辑补充我目前使用的代码用于测试目的:
Sub Test_Copy()
Worksheets("Sheet3").Range("A:N").Copy
Worksheets("Sheet4").Range("A:N").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
我发现了另一个问题,有一些代码,拷贝每个细胞,一次一个,但这是非常缓慢的。
Excel macro - paste only non empty cells from one sheet to another
另外,我从反应中得到印象,这不是一个好主意或最佳实践。
不健全的密集,但究竟怎么会变成这样实施?因为它是一个函数,我会打电话/用它作为公式,例如: = CopyTo(Sheet2!$ A2)??? 现在,我的VBA代码复制是非常基本的用于测试目的: 子Test_Copy() 工作表( “工作表Sheet 3”)的范围。( “A:N”)复制 工作表( “Sheet4”)。范围(“A:N”)PasteSpecial的粘贴:= xlPasteValues Application.CutCopyMode =假 结束小组 –
你得有他在宏一些地方,'wbSource'将工作簿您的采购数据from和'wbDestination'将被复制到的目的地 – Maldred
我不确定这是如何在这里工作,但我回复了您的文章多一点深入的答案。是否有可能帮助我更多,谢谢? –