Ir ao conteúdo
  • Cadastre-se

Célula ativa no ooo basic.


Posts recomendados

Bom dia,

 

 

No caso, o comum é usar o método CurrentSelection juntamente com um teste para verificar se a seleção é uma célula individual:

Sub Main
	oDoc = ThisComponent
	oCel = oDoc.CurrentSelection
	
	If oCel.ImplementationName <> "ScCellObj" Then
	   MsgBox "Por favor, selecione uma única célula."
	   Exit Sub
	End If

	vCel = oCel.Value
	sCel = oCel.String

	MsgBox "Valor: " & vCel & Chr(10) & "Texto: " & sCel
End Sub

 

Em todo caso, se precisar realmente de um comportamento mais parecido ao do ActiveCell do VBA, então pode usar a função abaixo em seu código:

Function getActiveCell()
Dim as1(), lSheet&,lCol&,lRow$, sDum as String,bErr as Boolean
   oView = ThisComponent.CurrentController
   as1()  = Split(oView.ViewData, ";")
   lSheet = CLng(as1(1))
   sDum = as1(lSheet +3)
   as1() = Split(sDum, "/")
   on error goto errSlash
      lCol = CLng(as1(0))
      lRow = CLng(as1(1))
   on error goto 0
   getActiveCell = oView.Model.getSheets.getByIndex(lSheet).getcellByPosition(lCol,lRow)
exit Function
errSlash:
   if NOT(bErr) then
      bErr = True
      as1() = Split(sDum, "+")
      resume
   endif
End Function

 

Um exemplo de como usar a função acima:

Sub Main2
	oCel = getActiveCell

	vCel = oCel.Value
	sCel = oCel.String

	MsgBox "Valor: " & vCel & Chr(10) & "Texto: " & sCel
End Sub

 

 

[]s.

TianK

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...