在开始之前,我对在Excel中创建宏一无所知,尽管我希望有人留下一个可以正常工作的解决方案,但我也非常感谢朝着正确方向的一点希望尝试自己写点东西。
我正在尝试制作一个从Apple的“ Apple Music Play Data.csv”中获取的音乐数据的电子表格,该电子表格的设置如下:
Song1, Artist1, Album1
Song1, Artist1, Album1
Song1, Artist1, Album1
Song2, Artist1, Album1
Song2, Artist1, Album1
等
行数等于播放歌曲的次数(上面的示例是Song1 playcount = 3,Song2 playcount = 2)。
但是,“专辑”字段中的大多数为空白或不正确。我还有另一个文档,其中每首歌曲都对应于其艺术家和专辑,如下所示:
Song1, Artist1, Album1
Song2, Artist1, Album1
Song3, Artist1, Album1
Song4, Artist2, Album2
等
我的问题是,如何创建一个宏来从Apple文档中获取歌曲和歌手,在另一个文档中搜索匹配项,然后将专辑名称从我的文档复制到Apple文档中的正确单元格中?我找到了与我所寻找的答案相似的答案,但是我仍然遇到一些问题。这是我找到并编辑的代码,其中w1(Sheet2)是我的文档,w2(Sheet1)是Apple的文档:
Sub Test()
Dim w1 As Worksheet, w2 As Worksheet
Dim c As Range, FR As Long
Application.ScreenUpdating = False
Set w1 = Workbooks("Book2.xlsx").Worksheets("Sheet2")
Set w2 = Workbooks("Book2.xlsx").Worksheets("Sheet1")
For Each c In w1.Range("A2", w1.Range("A" & Rows.Count).End(xlUp))
FR = 0
On Error Resume Next
FR = Application.Match(c, w2.Columns("A"), 0)
On Error GoTo 0
If FR <> 0 Then w2.Range("C" & FR).Value = c.Offset(0, 2)
Next c
Application.ScreenUpdating = True
End Sub
问题是,首先,这仅是按歌曲标题进行搜索,而不是按歌曲标题和艺术家进行搜索。如果多个艺术家具有相同的歌曲标题,这将是一个问题。其次,Apple文档的输出仅在歌曲首次出现时发生,例如
Song1, Artist1, CorrectAlbum1
Song1, Artist1, BlankAlbum1
Song1, Artist1, BlankAlbum1
Song2, Artist1, CorrectAlbum1
Song2, Artist1, BlankAlbum1
在这一点上,我根本不知道我应该添加或更改什么以获得期望的结果,也不清楚我使用的代码的含义。任何建议将不胜感激。
谢谢!