我正在尝试在libre-office中使用宏来查找单元格中的字符串 - 如果所述单元格包含该字符串,程序应该转到它下面的单元格,剪切该单元格的内容并粘贴它进入下一列然后再往前走一排,切下那些内容,然后将它们放在下一列之后。
因此,如果A1
包含所述字符串,则该脚本应转到A2
,剪切该单元格并将其内容粘贴到B1
,转到A3
剪切这些内容将这些内容粘贴到C1
,然后检查A4
。
希望这是有道理的。到目前为止我得到的是:
Sub Neuorganisieren
name = "check"
If find(". Fr" ,A1,0)>1 then
Selection.Offset(1, 0).Select
cut
Selection.Offset(-1, 1).Select
paste
Selection.Offset(2, -1).Select
cut
Selection.Offset(-2, 2).Select
paste
MsgBox ("found it")
Else
MsgBox ("no")
End If
End Sub
但是,我不断收到未定义子过程/函数过程的错误。
答案 0 :(得分:1)
试试这个:
Sub Neuorganisieren()
Name = "check"
If InStr(Range("A1").Value, ". Fr") > 0 Then
Selection.Offset(1, 0).Select
Selection.Cut
Selection.Offset(-1, 1).Select
Selection.Paste
Selection.Offset(2, -1).Select
Selection.Cut
Selection.Offset(-2, 2).Select
Selection.Paste
MsgBox ("found it")
Else
MsgBox ("no")
End If
End Sub
InStr检查该值是否存在于A1的内容中的任何位置。如果是,它将启动if语句的其余部分。
您无法自行剪切和粘贴。在这种情况下,您必须有一个对象将其应用于选择。所以我们使用Selection.Cut而不仅仅是Cut。
我不太了解你的目标背后的“业务”逻辑,所以我只是纠正了现有的代码,所以我不确定这是否会按你的意愿行事,但代码本身会工作
希望这有帮助。
阿都