[PowerShell] @-teken in Excel-formule

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mbruurs
  • Registratie: Juli 2005
  • Laatst online: 21-05-2023
In mijn PowerShell script wil ik gebruik maken van een formule maar er wordt een @ toegevoegd.

Wanneer ik het volgden aanroep: $worksheet('Sheet1').cells.item(2,2).formula="=AANTALARG(B4:B163)"

Verschijnt in Excel : =@AANTALARG(B4:B163) en in de cell #NAAM?.

door het verwijderen van de @ krijg ik de verwachte waarde te zien.

Iemand een idee waar de @ vandaan komt en hoe ik formule kaan aanpassen? Ik heb diverse optie met ` ' " geprobeerd maar ben het even kwijt.

Acties:
  • +1 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Nu online

g0tanks

Moderator CSA
@Mbruurs maak a.u.b. een eigen topic in plaats van een bestaand topic kapen waarvan het probleem niet eens gerelateerd is. Ik heb je reactie afgesplitst van Excel tekst scheidingstekens

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Nu online

g0tanks

Moderator CSA
Ik gok dat de cel die je wil bewerken onderdeel is van een tabel. Het apestaartje verschijnt dan automatisch omdat Excel denkt dat het een gestructureerde verwijzing moet zijn. Ik weet niet hoe je daarmee moet omgaan in PowerShell. Een oplossing zou kunnen zijn om de tabel te converteren naar een gegevensreeks.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • +1 Henk 'm!

  • Mbruurs
  • Registratie: Juli 2005
  • Laatst online: 21-05-2023
Blijkt een taal issue te zijn.

Voorbeeld:

$xl = New-Object -ComObject excel.application
$xl.visible = $True

$wb = $xl.Workbooks.Add()
$ws1 = $wb.Worksheets.Item(1)
$ws1.Name = "Test"
$ws1 = $wb.Worksheets["Test"]


$ws1.Cells.Item(4,4)= 1
$ws1.Cells.Item(5,4)= 1
$ws1.Cells.Item(6,4)= 1
$ws1.Cells.Item(7,4)= 1
$ws1.Cells.Item(8,4)= 1

$ws1.cells.item(1,4).formula="=AANTALARG(D4,D10)" --> Formule werkt in Excel maar geeft vanuit PowerShell in Cell D1 =@AANTALARG(D4:D10)

Afbeeldingslocatie: https://tweakers.net/i/Br9iEgbtiDvEhF1Z-tiJyjdSRZ8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/4qrfJQB8nRwBjHhX1ZRlyApY.png?f=user_large

Verander ik in PowerShell naar Engels $ws1.cells.item(1,4).formula="=COUNTA(D4:D10)" gaat het goed.
Afbeeldingslocatie: https://tweakers.net/i/9F7bJpz8jJSC5yQ4GoLOOIBh3WM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/nQiEbKrdQhUgLFkCZZh45lCs.png?f=user_large

Acties:
  • 0 Henk 'm!

  • m-vw
  • Registratie: Mei 2013
  • Laatst online: 09:16

m-vw

GEZOCHT: De Kluts

Heeft inderdaad met taal te maken. Heb het zelf volgens mij gehad met het gebruik van de Engelse formule in VBA op een systeem dat op Nederlands ingesteld was. Kan het nu helaas niet herproduceren, de functie wordt gewoon naar het Nederlands vertaald.

Garmin FR245M + HRM-RUN