0

我正在尝试在我的梦幻联赛中导入并维护一个包含所有梦幻足球运动员的 Excel 列表以及他们每周的平均得分。我可以从 yahoo 以每页 25 个播放器的方式获取此信息,因此我设置了一个 excel 工作簿,每个页面都将一个网络链接导入到 excel 中,有 25 个播放器(总共 10 页)

这个想法是,每周我可以简单地将所有页面刷新到 excel 中,然后在同一个工作簿中放置另一个工作表,该工作表遍历所有工作表并将它们放入一个我可以操作和玩的漂亮列表中。它基本上是:

Player Name | Position | Team Name | AVG PTS

不幸的是,导入的信息有一点可变性,所以我不能专门引用绝对单元格。这是因为受伤状态的球员之间可能会或可能不会有额外的争吵。

我所知道的是,玩家姓名在 b 列中,从 B160 范围内开始,到最大 B250 结束。b列中的每个玩家的名字都可以用ctrl+f来隔离“ - ”

我想要做的是在工作簿的单独工作表上设置一个公式,该公式将:

  1. 使用导入的数据在工作表上搜索此范围,
  2. 在此范围内查找所有带有“ - ”的字符串
  3. 复制/返回完整的单元格字符串,仅此而已

我不确定这是否可以通过公式进行,而且我没有任何运气在这里查看其他帖子。

这是我正在使用谷歌文档的截断版本的链接(我觉得人们会觉得下载一些随机的 excel 文件很有趣:

https://docs.google.com/spreadsheet/ccc?key=0AvLwUKmn33T6dHhGcEVwWC1KdXpMblJoRGJzMlNWWlE&usp=sharing

4

1 回答 1

0

如果您只有几张纸,一种简单的方法是过滤列,然后在过滤器搜索中输入“-”(不带引号)。这适用于 2007 年以上。仅将可见单元格复制并粘贴到您的主工作簿中。

您也可以使用 VBA 来执行此操作:

Dim sMain As String
Dim sImported As String, lLen As Long
Dim sStart As String
sMain = "ALL TAKEN PLAYERS AVG" 'name of your main sheet
sMainCol = "A" 'column your player names will go in
sImported = "Imported Data " 'string that player sheets start with
lLen = Len(sImported)
sStart = "B160" 'starting cell for imported data

Dim ws As Worksheet
Dim rPlayers As Range, cell As Range
Dim counter As Long

counter = 5 'starting row to fill out players

For Each ws In Worksheets
    If Left(ws.Name, lLen) = sImported Then
        ws.Activate
        Set rPlayers = Range(Range(sStart), Range(sStart).End(xlDown))
        For Each cell In rPlayers
            If InStr(1, cell.Value, " - ") > 0 Then
                Sheets(sMain).Range(sMainCol & counter).Value = cell.Value
                counter = counter + 1
            End If
        Next cell
    End If
Next ws
于 2013-10-04T23:30:28.057 回答