我正在尝试学习LibreOffice的脚本功能,并且有一个我无法弄清楚的特定场景。
我要做的是从另一个工作表中获取值,方法是搜索相邻单元格中的特定值。
例如,假设我有两个工作表:
Worksheet1
和Worksheet2
我正在尝试做的是,使用Worksheet2,B列中的相关值填充Worksheet1,B列中的每个值。我尝试这样做的方法是编写一个查找并使用月份的语句在Worksheet1中作为针对Worksheet2,C列的搜索条件。
到目前为止,我没有太多运气,但这是我一直在努力的方法:
='Worksheet2'.$C.FIND('Worksheet1'.$A1).$B1
这很可能是错误的,但我试图表达逻辑,即“在Worksheet2中,从Worksheet1中找到值:$ A1,并从工作表2中获取值:$ B1”
基本上它归结为我还不了解这种语言的语法和范例。
关于如何完成我上面尝试做的任何想法?
另外,我会对有关此语言的在线教程的任何链接感兴趣(LibreOffice Basic?)
提前致谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
我只是根据你的问题调整我的常规。它应该工作...... 假设两张纸都没有空行:
Sub MergeSheets
Dim Ind as Integer
Dim oSheet1, oSheet2
Dim oDocument as Object
oDocument = thisComponent
' Destination Sheet
dSheet = oDocument.getSheets().getByName("Worksheet1")
' Origin Sheet
oSheet = oDocument.getSheets().getByName("Worksheet2")
oCount = 0
oCell = oSheet.getCellByPosition(0,oCount)
while oCell.Formula <> ""
' Search for the matching line
dCount = 0
dCell = dSheet.getCellByPosition(2,0)
while dCell.Formula <> "" and dCell.Formula <> oCell.Formula
dCount = dCount + 1
dCell = dSheet.getCellByPosition(2,dCount)
wend
' Set Value to the destination cell
' If Key was not found, the last empty line will be used
fCell = dSheet.getCellByPosition(1,dCount)
if fCell.Formula = ""
fCell.Formula = "="+oSheet.getCellByPosition(1,dCount).Formula
else
fCell.Formula = fCell.Formula+'+'+oSheet.getCellByPosition(1,dCount).Formula
end if
oCount = oCount + 1
oCell = oSheet.getCellByPosition(0,oCount)
wend
End Sub