使用范围内的非空单元格复制最后20列

时间:2015-01-11 14:28:26

标签: excel excel-vba vba

我正在为VBA中的excel编写宏。宏正在使用Web查询收集表数据。数据是来自xscores.com的足球表单(例如一个联赛)http://www.xscores.com/soccer/tables/england/premier_league/2014-2015/l/4/5 除了一件事,一切都像魅力一样。首先,这是我遇到问题的代码部分 http://pastebin.com/HKTT6Paw

这是W D L的一部分。 Web查询正在收集整个表。它应该收集10个家,10个和20个(即40个单元)。但在一些联赛中(因为比赛延迟)正在收集11个主场或12个客场或类似的,有空白单元。我只需要总共5列。我解决这个问题的想法是得到一些范围,检查是否是最后填充的范围内的列,并从上一个填充的列中收集该列和此列之前的19(范围内的单元格)。获得总数(总共20场比赛)。并将其粘贴在纸张的其他部分。 在宏中是否有解决方案来检查上一个填充的列,并采用最后20个填充列的单元格范围? (在此示例中将是范围BR4:CL23) 或者如果有人有更好的解决方案,可以提供一些免费的建议提前谢谢。

1 个答案:

答案 0 :(得分:1)

此宏会将Activesheet的最后20列复制到Sheet2单元格 A1:

Sub Kolumn()
    Dim r As Range, nLastColumn As Long
    ActiveSheet.UsedRange
    Set r = ActiveSheet.UsedRange
    nLastColumn = r.Columns.Count + r.Column - 1
    Range(Cells(1, nLastColumn - 19), Cells(1, nLastColumn)).EntireColumn.Copy Sheets("Sheet2").Range("A1")
End Sub