@GAS_Mania (マニア GAS)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

GAS 文字検索してセルを移動

B列の値を検索する為、インプットボックスに値を入力し、見つかった所に選択セルを移動したい。

エラーはしないがうまく検索とセルの移動ができません。

function myFunction() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getActiveSheet();

var kensakumoji = Browser.inputBox("検索する文字を入力してください");

var lastRow = sht.getLastRow();
for(var i = 2;i <= lastRow; i++) {
if(sht.getRange(i,2).getValue() === kensakumoji){

Logger.log(sht.getRange(i,2).getValue());
sht.getRange(i,2).activate();
}
}
}

0 likes

2Answer

どのようなデータを検索したのかわからないので、とりあえず1つの可能性を。

Range.getValue() はセルに入力されているものによって、 Number Boolean Data String が返ってくる可能性があるそうです。

Returns the value of the top-left cell in the range. The value may be of type Number, Boolean, Date, or String depending on the value of the cell. Empty cells return an empty string.

検索しようとして入力されたものは文字列であるため、 Number Boolean Data 型の項目には一致しません。

もし、上記のようなケースであれば、 Range.getDisplayValue() を使ってみるのも手かもしれません。

0Like

アドバイスありがとうございます!

他の方法で実装しました。

function findRow2(sheet,val,col){

//インプットボックスで探したい対象情報を入力
var LookNo = Browser.inputBox("番号検索","検索したい番号は?",Browser.Buttons.OK_CANCEL);

//アクティブシート情報の取得
var spread = SpreadsheetApp.getActiveSpreadsheet() ;
var sheet = spread.getSheets()[0] ;

//シート内からインプットボックスの値を検索
var textFinder = sheet.createTextFinder(LookNo);
var ranges = textFinder.findAll();

//インプットボックスの値が複数ある場合、最後の検索場所に移動
for ( var i = 0; i < ranges.length; i++ ) {
var ichi = ranges[i].getA1Notation();

sheet.getRange(ichi).activate();

}
}

0Like

Your answer might help someone💌