【问题标题】:Applescritp Excel to Find And Replace "Applescript Excel 查找和替换"
【发布时间】:2017-01-22 14:00:00
【问题描述】:

我需要一个苹果脚本来查找 " 并替换为一个空格。我在这里找到了一个很棒的脚本,它可以很好地查找和替换整个单词(你好,世界)但是当你操纵脚本来查找 " 并替换为一个空格,“”破坏了代码,它不再起作用。我希望有人知道一种方法来改变这个代码,让它做我想做的事情或有其他想法。这是代码(代码归功于 adamh):

searchAndReplaceTextInCells("hello", "world")

on searchAndReplaceTextInCells(search_str, replace_str)

tell application "Microsoft Excel"

    set search_range to range "A:Z"
    set all_found_ranges to {} -- store for the ranges, to manipulate after searching
    set found_range to ""
    set counter to 0
    try
        set found_range to find search_range what search_str with match case
    on error
        log ("No matches found")
    end try

    if (found_range is not "") then
        set first_cell_address to (get address of the cells of found_range) -- we use this to break our loop
        repeat while true
            set counter to counter + 1
            copy found_range to end of all_found_ranges

            -- Now look for next result
            set found_range to find next search_range after found_range
            set cell_address to (get address of the cells of found_range)

            if (cell_address = first_cell_address) then 
                -- have looped around so we are finished!
                exit repeat
            end if
        end repeat

    end if

    -- walk all the ranges found and do the string replacing
    repeat with r in all_found_ranges
        set value of r to my replace_chars(the value of r, search_str, replace_str)
    end repeat

    log ("found and replaced " & counter & " items")
end tell
end searchAndReplaceTextInCells

on replace_chars(this_text, search_string, replacement_string)
set my text item delimiters to the search_string
set the item_list to every text item of this_text
set my text item delimiters to the replacement_string
set this_text to the item_list as string
set my text item delimiters to ""
return this_text
end replace_chars

【问题讨论】:

    标签: excel replace find applescript


    【解决方案1】:

    由于 " 是保留字符,我们在字符串中引用它时需要区别对待。

    您可以使用quote 常量作为参数:

    searchAndReplaceTextInCells(quote, " ")
    

    ..或者您可以将其作为转义字符发送:

    searchAndReplaceTextInCells("\"", " ")
    

    【讨论】:

      猜你喜欢
      • 2013-12-17
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多