簡體   English   中英

如何將刪除數字自定義函數 Excel VBA 函數轉錄到 Google Sheets Google Script (Javascript)

[英]How transcribe remove number custom function Excel VBA function to Google Sheets Google Script (Javascript)

我需要將 VBA 腳本轉錄為 Javascript,但我卡在了 java 部分

主要意思是從像“textthere 123456789”這樣的文本中刪除數字

我的 VBA 代碼是:

Function RemoveNum(Txt As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemoveNum = .Replace(Txt, "")
End With
End Function

我的 Javascript 嘗試是:

function RemoveNumbers(RemoveNumbers) {
  var RemoveNumbers;
  //var str = RemoveNumbers.toString();
  var str = RemoveNumbers;
  str.Value.replace(/[0-9]/g, '');
}

甚至:

function rn(remvnum) {
var str = remvnum;
var n = str.toString();
var res = n.replace(/[0-9]/gmi, '');

}

阻止我達到結果的是,.Replace 函數需要是字符串內容,否則將返回未定義值的錯誤,我也無法轉換為字符串,因為它返回未定義值的錯誤。

下面這個例子運行良好,因為函數的名稱作為自定義函數寫在 Google Sheet 單元格中,但我沒有實現刪除號碼的願望:

function styleHyphenFormat(propertyName) {
  function upperToHyphenLower(match, offset, string) {
    return (offset ? '-' : '') + match.toLowerCase();
  }
  return propertyName.replace(/[A-Z]/g, upperToHyphenLower);
}

有人知道我做錯了什么嗎?

提前致謝。

試試removeNumbers = removeNumbers.replace(/[0-9]/g, ''); 或者設置一個新的noNums = removeNumbers.replace(/[0-9]/g, '');比如noNums = removeNumbers.replace(/[0-9]/g, '');

您只需要return替換后的值:

function rn(remvnum) {
 //var str = remvnum;
 //var n = str.toString();
 var res = remvnum.toString().replace(/[0-9]/gmi, '');
 return res; //Added
}

與 excel 不同,Google 表格支持 regex( ) 作為內置函數。 所以,你不需要宏。 即使您想要全局替換,查找和替換菜單也適用於正則表達式。

=REGEXREPLACE(A2,"\d",)

或者

=ARRAYFORMULA(REGEXREPLACE(A2:A5,"\d",))
  • \\d就是d igit(== [0-9]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM