自动导入html链接

时间:2018-10-06 11:12:58

标签: google-apps-script google-sheets

B1 = https://g10oal.com/match/a03716cc-adf5-4818-949d-7dd2cc3cbe59/odds#hdc
B2 = https://g10oal.com/match/863a7390-eb42-48a5-bca4-45aa7a92b1f0/odds#hdc



B10 = https://g10oal.com/match/ef07412e-61b6-4f2a-b93a-8c9d8b1b056/odds#hdc

我想编写宏以将B1到达B10的URL表

var spreadsheet = SpreadsheetApp.getActive();
var blankSyntaxA = 'ImportHtml("';
var Link1 = spreadsheet.getRange('B1');
var blankSyntaxB = '", "table", 4)';  
var liveSyntax = blankSyntaxA + Link + blankSyntaxB;

spreadsheet.getRange('L1').activate();
spreadsheet.getCurrentCell().setFormula(liveSyntax);  

但是显示的L1 => =ImportHtml("Range", "table", 4),这不是网页表的内容。

如何将范围变成B1 URL?

我按如下方式更改了股票。现在,我面临的问题应该是:

1)L1始终获得B1链接,而B1链接无法获得B2,B3,B4。 2)F1到K5的数据相同。

我想输出应该是:

第一次循环

1)L1获得B1链接表

2)F1 = N2,G1 = P2,H1 = O2

3)I1 = N + LastRow,J1 = P + LastRow,K1 = H + LastRow

第二循环

1)L1获得B2链接表

2)F2 = N2,G2 = P2,H2 = O2

3)I2 = N + LastRow,J2 = P + LastRow,K2 = H + LastRow

三连环

1)L1获得B3链接表

2)F3 = N2,G3 = P2,H3 = O2

3)I3 = N + LastRow,J3 = P + LastRow,K3 = H + LastRow

1 个答案:

答案 0 :(得分:0)

类似的事情应该可以做到。 vA [i] [1]是B列vA [i] [11]是L列。

With ThisWorkbook.Sheets("Sheet1")
    .Columns("J").SpecialCells(xlCellTypeVisible).Copy _
    Destination:=Sheet2.Range("A1")

    .Range("A2:A3").EntireRow.Hidden = True
    .Columns("K:N").SpecialCells(xlCellTypeVisible).Copy _
    Destination:=Sheet2.Range("B1")
End With

您也可以使用以下方法:

function assembleCellFormula(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++){
    vA[i][11]=Utilities.formatString('=ImportHtml("%s","table",4)',vA[i][1]);
  }
  rg.setValues(vA);
}
  

注意:我没有测试这些,所以它们可能需要一些调试才能工作。 Utilities.formatString的说明here