別のスプレッドシートのハイパーリンクからGoogleスプレッドシートの特定のシートを開きたいとします。Googleスプレッドシートの特定のシートへのハイパーリンク
私は自分のマスタースプレッドシートに異なるリンクを持ち、すべて同じスレーブスプレッドシートへのハイパーリンクが異なるシートにあるはずです。
ハイパーリンク機能はわかりますが、特定のシートには適用されません。助けのための
おかげ
別のスプレッドシートのハイパーリンクからGoogleスプレッドシートの特定のシートを開きたいとします。Googleスプレッドシートの特定のシートへのハイパーリンク
私は自分のマスタースプレッドシートに異なるリンクを持ち、すべて同じスレーブスプレッドシートへのハイパーリンクが異なるシートにあるはずです。
ハイパーリンク機能はわかりますが、特定のシートには適用されません。助けのための
おかげ
HYPERLINK
機能ことができ、同じブック内の別のシートへリンク。スプレッドシートのURLを確認すると、最後に#gid=x
が表示されます。ここで、x
は各シートに固有です。
問題は、別のタブでスプレッドシートの新しいインスタンスとしてシートを開きますが、これはおそらく望ましくないことです。回避策は、画像や図をボタンとして挿入し、特定のシートをアクティブにするスクリプトを割り当てることです。
このカスタムスクリプト([ツール]> [スクリプトエディタ])を使用して、たとえば次のように接続できます。カスタム描画(挿入>図面...>>保存して閉じる、右新しい図面をクリックして割り当てスクリプト...>「goToSheet2」)
function goToSheet2() {
goToSheet("Sheet2");
}
function goToSheet(sheetName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
SpreadsheetApp.setActiveSheet(sheet);
}
更新:あなたができる最新のバージョンで
セルを選択し、リンク([挿入]> [リンク)を追加し、直接特定のシートへのリンクを選択します。
ベストアンサーとオプションは、**アップデート:** 1つです。 –
それでは、私はOPから理解することは、あなたが個々のシートへのリンクを持つようにしたい一つのマスタースプレッドシートを持っているということです、それらのシートのうちの1つ以上が単一であってもよく、または複数であってもよいeスプレッドシートファイル。
HYPERLINK
関数はURLをハイパーリンクに変換するだけで、リンクの代わりにハイパーテキストを使用する場合にのみ便利です。データとして生のURLを入力すると、自動的にハイパーリンクに変わりますので、追加の作業はありません。
他の回答に記載されているように、解決策は、スプレッドシートのURLを持ってからgid
値を使用してスプレッドシート内の目的のシートへのリンクを計算することです。個々のシートのリンクをすべて集めてマスターに書き込むシンプルなアプリを書くことができます。
以下は、使い始めるのに役立つ疑似コード(Python)の抜粋です。ボイラープレートの認証コードはすべて削除しますが、必要な場合はthis blog postとthis videoを参照してください。以下のコードは、APIサービスのエンドポイントがSHEETS
であることを前提としています。
これは、そのシートの各々のためのリンクを構築するために、ターゲットのスプレッドシートを読み込む:
代わりに画面に印刷の# open target Sheet, get all sheets & Sheet URL
SHEET_ID = TARGET_SHEET_DRIVE_FILE_ID
res = SHEETS.spreadsheets().get(spreadsheetId=SHEET_ID,
fields='sheets,spreadsheetUrl').execute()
sheets = res.get('sheets', [])
url = res['spreadsheetUrl']
# for each sheet, dump out its name & full URL
for sheet in sheets:
data = sheet['properties']
print('** Sheet title: %r' % data['title'])
print(' - Link: %s#gid=%s' % (url, data['sheetId']))
、あなたは自分のアプリで(name, URL)
2組の配列にそれらを保存しましょう、そう下このような(左上隅のセルA1
から始まる)あなたは、マスターに書き込むことができ
sheet_data = [
('Intro', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=5'),
('XData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=3'),
('YData', 'https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=7')
]
:-line、それがこのリストのようなものがsheet_data
と呼ば見えます
SHEET_ID = MASTER_SHEET_DRIVE_FILE_ID
SHEETS.spreadsheets().values().update(
spreadsheetId=SHEET_ID, range='A1',
body={'values': sheet_data},
valueInputOption='USER_ENTERED'
).execute()
いくつかの注意点gid
を使用している場合:
gid=0
を持っています。gid
が含まれます。gid=0
を記入しないでください。ただし、私の例のように、あなたや他の人が元のデフォルトシートを削除している可能性があります。あなたはシートのAPIを使用してのより多くの例を見たい場合は、ここで私は(各コードサンプルを掘り下げ記事と一緒に)行った他の動画です:
スプレッドシートファイルに関係なく、スプレッドシートのUIにマスターを開くと、個々のスプレッドシートファイルに関係なく、個々のスプレッドシートにリンクすることができます。他のアプリやスクリプトで自動的に開きたい場合は、開発者にターゲットURLを指定してWebブラウザを起動する方法を提供します。スクリプトで 私はこの関数を作成:
私の中/**
* Return the id of the sheet. (by name)
*
* @return The ID of the sheet
* @customfunction
*/
function GET_SHEET_ID(sheetName) {
var sheetId = SpreadsheetApp.getActive().getSheetByName(sheetName).getSheetId();
return sheetId;
}
、その後、私はpersonnalyこれが言っ@rejthyに基づいた
import webbrowser
webbrowser.open_new(url) # or webbrowser.open_new_tab(url)
:Pythonでは、それはwebbrowser
モジュール(docs)になります私がこれをしたリンクが必要な場所:=HYPERLINK("#gid="&GET_SHEET_ID("Factures - "&$B$1);"Année en cours")
また、カスタム関数を作成することもできます。スプレッドシートオープンで、....エディタにコードを貼り付けツールメニュー、そしてスクリプトエディタをクリックします。
/**
* Gets the Sheet ID from Sheet Name
*
* @param {string} input The Sheet Name
* @return The Sheet ID
* @customfunction
*/
function SHEETID(input) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var tab = ss.getSheetByName(input);
return tab.getSheetId();
}
保存、スプレッドシートをリフレッシュして、カスタム関数
を入力=SHEETID("Your Custom Sheet Name")
=SHEETID(A1)
そしてvoila!現在のスプレッドシート内のタブの一意のIDが出力されます。あなたは、次の式を使用して、それにハイパーリンクすることができます
=HYPERLINK("#gid="&SHEETID(A1),"Link")
信じられない、これは標準の機能ではありません。回避策ありがとうございました – Brandon
私はこの回答に役立ちました。コメントを追加するだけで、同じ[スプレッドシート]ドキュメント内からそのワークシートをリンクしている場合、[別の[ブラウザ]タブで開きます。あなたの例が私のようなものであれば、HTMLまたはwikiページを特定のワークシートにリンクしているので、心配はありません。#gidトリックは機能しません(ワークシートのタブを削除する人はいません...) #gidはFIXED POSITIONの番号なので、左から4番目のワークシートは#gid = 3となります)。 –