2017-05-05 3 views
0

Wenn Blattname ist mein Blatt Daten die m_address und m_addressLocal Eigenschaften des zurückgegebenen Bereich Objekt wie dieses aussehen "'my sheet''s data'!A1:B2"ctx.workbook.getSelectedRange() gibt Doppel Apostroph ‚‘ für jedes einzelne Zitat "im Blattnamen

Bei der Verwendung in anderen API-Aufrufen schlagen sie fehl.

Problemumgehung ist String Ersetzung auf einer höheren Ebene, da die Eigenschaft range.address nicht direkt geändert werden kann.

+0

Lassen Sie mich dies an das Entwicklerteam weitergeben, und wir melden uns bei Ihnen. –

+0

danke. Es blockiert mich nicht. Ich wollte dich nur darüber informieren. –

Antwort

1

Wir haben das untersucht, und ich bin nicht überzeugt, dass wir hier einen Fehler haben. Der folgende Code funktioniert. Wenn Sie sagen, dass "falls in anderen API-Aufrufen unverändert verwendet wird", auf welche API-Aufrufe beziehen Sie sich?

try { 
    await Excel.run(async (context) => { 
     const sheetName = `My sheet's data`; 

     // Preemptively delete any previous incarnation of this worksheet, if any 
     context.workbook.worksheets.getItemOrNullObject(sheetName).delete(); 

     const sheetAdded = context.workbook.worksheets.add(sheetName); 
     const rangeB2 = sheetAdded.getRange("B2").load("address"); 

     await context.sync(); 
     console.log(rangeB2.address); 

     const refetchedRange = sheetAdded.getRange(rangeB2.address); 
     refetchedRange.format.fill.color = "orange"; 

     const differentFetchedRange = sheetAdded.getRange("'My sheet''s data'!B3"); 
     differentFetchedRange.format.fill.color = "purple"; 

     sheetAdded.activate(); 
    }); 
} 
catch (error) { 
    OfficeHelpers.Utilities.log(error); 
} 

können Sie versuchen, diese Schnipsel leben in buchstäblich fünf Klicks in dem neuen Script Lab (https://aka.ms/getscriptlab). Installieren Sie einfach das Script Lab-Add-In (kostenlos), wählen Sie dann "Importieren" im Navigationsmenü und verwenden Sie die folgende GIST-URL: https://gist.github.com/Zlatkovsky/bd5e82a3cf6da021cc1af13dddebba1b. Siehe more info about importing snippets to Script Lab.

+0

Entschuldigung, ich vermute, ich habe Annahmen über "andere APIs" gemacht. Die spezifische API, die für mich bricht, ist dieses 'context.workbook.worksheets.getItem (" Daten meines Blattes "). GetRange (" B3 "). Select();' Wenn Sie dies unter Ihre 'sheetAdded.activate setzen() 'Sie werden es scheitern sehen. Der Anwendungsfall für mich besteht darin, den ausgewählten Bereich in der Arbeitsmappe abzurufen, den Namen des Arbeitsblatts (ohne zusätzliche Anführungszeichen) anzuzeigen und an den Benutzer zu adressieren und sie zum Bereich bei Klick springen zu lassen. Nicht sicher, warum einige APIs doppelte Zitate tolerieren und andere nicht. Hier ist ein Kern: (https://gist.github.com/jimbarrett33/99581000b3907fb1084e2b9b455c7c82). Schönes Add-In übrigens. –

+1

@ Jim Barrett, ich würde argumentieren, dass das oben genannte Design ist. Es gibt kein Blatt, das in der Arbeitsmappe ein Doppel-Häkchen enthält, und so schlägt es fehl. Es gibt einen Unterschied zwischen dem Anschauen der Teilstriche, wenn es Teil einer größeren "Blattname"! A4 "-Struktur ist, und dem, wenn Sie ein" getItem "machen. –

+1

Für Ihr Szenario wäre es das Richtige, die "Arbeitsblatt" -Eigenschaft des Bereichs abzufragen und dann 'Arbeitsblatt.Name' zu ​​laden. –

Verwandte Themen