excel vba haal het door de gebruiker geselecteerde bereik met de muis en kopieer het naar het klembord

Ik ben nieuw om macro's uit te blinken. Ik wil het geselecteerde bereik kopiëren naar het klembord.

Hieronder is de link waar de halve oplossing aanwezig is, deze geeft de uitvoer in een pop-up bericht.

Excel VBA krijgt bereik van door gebruiker geselecteerd bereik per muis

het is als

Sub macro1()
  MsgBox Selection.Address(ReferenceStyle:=xlA1, _
                           RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

Maar als ik wil ontsnappen aan de pop-up en het resultaat direct kopieert naar clipboad ????

voorbeeld: als ik de cellen heb geselecteerd uit B15 tot E40 en F23 cel, geeft dit het bericht als "B15: E40, F23", en ik wil dit bericht kopiëren, niet de celinhoud van deze geselecteerde cellen.

0

1 antwoord

Een eenvoudige Selection.Copy plaatst het geselecteerde bereik op het klembord :)

FOLLOW

Om het celadres van het geselecteerde bereik te kopiëren, doet u dit.

'~~> Set a reference to Microsoft Forms Object Library
Sub Sample()
    Dim strAddr As String
    Dim MyDataObj As New DataObject

    strAddr = Selection.Address

    '~~> This will put the address string in the Clipboard. To test this
    '~~> After you run this macro, press CTL - V in Notepad.      
    MyDataObj.SetText strAddr        
    MyDataObj.PutInClipboard
End Sub

MEER FOLLOWUP

ik wil komma's vervangen door forward slash ????

Zoals vermeld in mijn opmerking, vervangt u de komma door de Slash.

strAddr = Selection.Address
strAddr = Replace(strAddr, ",", "/")
3
toegevoegd
Wrong !! Het kopieert de inhoud van de cel, niet het uitvoerbereik! Ontspan :) Het is niet nodig om je wapens te springen;) Ik heb de bovenstaande post bijgewerkt ...
toegevoegd de auteur Siddharth Rout, de bron
Lees de eerste opmerking in de code;) '~~> Een verwijzing instellen naar Microsoft Forms-objectbibliotheek
toegevoegd de auteur Siddharth Rout, de bron
Klik in VBA Editor op Hulpprogramma's | Referenties en vervolgens in VBA-verwijzingen Dialoogvenster, Klik op Bladeren en selecteer vervolgens de FM20.Dll in de map C: \ Windows \ system32. Als alternatief kunt u een gebruikersformulier toevoegen aan uw vba-project dat er automatisch een verwijzing naar zal instellen.) Als u klaar bent, voert u de bovenstaande code opnieuw uit.
toegevoegd de auteur Siddharth Rout, de bron
Dus was je in staat om het te laten rennen?
toegevoegd de auteur Siddharth Rout, de bron
Gebruik de functie Vervangen voordat u deze naar het klembord kopieert. Bekijk het bijgewerkte bericht. :)
toegevoegd de auteur Siddharth Rout, de bron
Fout!! Het kopieert de celinhoud, niet het uitvoerbereik! voorbeeld: als ik de cellen heb geselecteerd uit B15 tot E40 en F23 cel, geeft dit het bericht als "B15: E40, F23", en ik wil dit bericht kopiëren, niet de celinhoud van deze geselecteerde cellen.
toegevoegd de auteur namit, de bron
het geeft een foutmelding als: "Compileerfout: door gebruiker gedefinieerd type niet gedefinieerd"
toegevoegd de auteur namit, de bron
Het voelt alsof .. je bent heel dicht bij de oplossing .... :)
toegevoegd de auteur namit, de bron
ik gebruik ms office 2003 sp3 ... dat ontbreekt in referentie of ik kan het niet vinden. hoe repareer je het???
toegevoegd de auteur namit, de bron
:) Het werkt, ik heb het een beetje aan te passen, ik heb "Selection.Address" gewijzigd in "Selection.Address (ReferenceStyle: = xlA1, RowAbsolute: = False, Column Absolute: = False)" thanks ...
toegevoegd de auteur namit, de bron
net als een curiositeit; ik krijg bijvoorbeeld de uitvoer als "G17: J17, H18: J19, J20: J22, J24: J28, I25, G26: G28, E20: E25, F25, F18 & zwnj;, C23: D23" maar als ik wil het krijgen als ... "G17: J17/H18: J19/J20: J22/J24: J28/I25/G26: G28/E20: E25/F25/F18 & zwnj;/C23: D23" ", dwz ik wil je komma's vervangen door slash forward ??
toegevoegd de auteur namit, de bron
Klaar ... Klaar ... gedaan .. Bedankt ... :)
toegevoegd de auteur namit, de bron