2014-01-25 45 views
1

我正在尝试创建一个交互式工作表,可以根据单元格值加载一些数据。例如,如果单元格“A1”更改为“estructura”,则范围(C2:E4)将加载data3列表。下面的代码是一个好方法还是有更好的方法?使用Datanitro的交互式工作表

data1 = [[1, 2, 3], [4, 5, None], [6, 7, 8]] 
data2 = [[10, 20, 30], [40, 50, 60], [70, 80, 90]] 
data3 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

static = Cell("A1").value 

while True: 
    if static != Cell("A1").value: 
     if Cell("A1").value == "mamposteria": 
      CellRange("C2:E4").clear() 
      Cell("C2").table = data1 
     elif Cell("A1").value == "mortero": 
      CellRange("C2:E4").clear() 
      Cell("C2").table = data2 
     elif Cell("A1").value == "estructura": 
      CellRange("C2:E4").clear() 
      Cell("C2").table = data3 
     static = Cell("A1").value 

回答

1

该代码有效。 (while循环没有正确缩进,但我认为这是一个错字。)

这里的循环更高效的版本:

的主要区别是,你在A1的值读数一次每个循环 - 这比每次比较读取都要快。

while True: 
    new = Cell("A1").value 
    if static != new: 
     CellRange("C2:E4").clear() 
     Cell("C2").table = {"mamposteria": data1, 
          "moretero": data2, 
          "estructura": data3}[new] 
     static = new