teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

スプレッドシートのリンクも追加しました。コードも自分なりに書き換えてみました。

2020/08/05 12:35

投稿

hide65
hide65

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- スプレッドシートに2000件ほど商品データがあり、C列のタイトルの削除したい文字を一括で削除したいです。
1
+ スプレッドシートの、C列のタイトルの削除したい文字をマクロを使用して一括で削除したいです。
body CHANGED
@@ -1,10 +1,12 @@
1
- スプレッドシートに2000件ほどの商品データがあり、C列のタイトルに削除したい文字がそれぞれ違い複数大量にあります。その削除したい文字をマクロを使用して一括削除しようとまずは、その文字をこの変換にする変換表(C列用)を作成しました。その後、javascriptでその変換表を読み込み、それに基づいて一括変換するように記述したつもりですがエラーメッセージが出て上手くいきせんでした。どこがいけないのか教えて頂けないでしょうか?
1
+ スプレッドシートに2000件ほどの商品データがあり、C列のタイトルに削除したい文字がそれぞれ違い複数大量にあります。その削除したい文字をマクロを使用して一括削除しようとまずは、その文字をこの変換にする変換表(C列用)を作成しました。その後、javascriptでその変換表を読み込み、それに基づいて一括変換するように記述したつもりですが、スクリプトは終了しましたと出るのですが変換されません。どこがいけないのか教えて頂けないでしょうか?
2
2
 
3
+ スプレッドシートのリンクも付けましたので、教えてください。何か記述が間違っているのでしょうか?またはほかに方法があるのでしょうか?
4
+
3
5
  function reg(){
4
6
  const targetSheetName = "sheet1";
5
7
  const targetA1notation = "C:C";
6
8
  const dictionarySheetName = "C列用";
7
- const dictionaryA1Notation = "A2:B66";
9
+ const dictionaryA1Notation = "A2:B320";
8
10
  const spreadsheet = SpreadsheetApp.getActive();
9
11
  const targetRange = spreadsheet
10
12
  .getSheetByName(targetSheetName)
@@ -14,10 +16,13 @@
14
16
  .getRange(dictionaryA1Notation)
15
17
  .getValues();
16
18
  dictionary.forEach(function(e) {
19
+ if(e[0] != null
17
- if (e[0] != null && e[1] != null) {
20
+ && e[1] != null
21
+ && e[0] != undefined
22
+ && e[1] != undefined
23
+ && e[0] != ""
24
+ && e[1] != ""){
18
25
  targetRange.createTextFinder(e[0]).replaceAllWith(e[1]);
19
- }
26
+ }
20
27
  });
21
- }
22
-
23
- エラーメッセージが出ないようになり、スクプトが終了しましたと表示されましたがどの行も置換されていませんでした。この記述では間違いなのでしょうか?
28
+ }[ンク内容](http://https://docs.google.com/spreadsheets/d/1xhvWma-8nIBDxVlDA3fHLzHE2u8r16wsKU2VxQPZ7SU/edit#gid=0)