VBA
Często używana manipulacja ciągiem znaków
Szukaj…
Wprowadzenie
Szybkie przykłady funkcji struny MID LEFT i RIGHT przy użyciu INSTR FIND i LEN.
Jak znaleźć tekst między dwoma wyszukiwanymi hasłami (powiedz: po dwukropku i przed przecinkiem)? Jak uzyskać pozostałą część słowa (używając MID lub PRAWO)? Które z tych funkcji używają parametrów zerowych i kodów zwrotnych w porównaniu do One? Co się stanie, gdy coś pójdzie nie tak? Jak radzą sobie z pustymi ciągami, nieuzasadnionymi wynikami i liczbami ujemnymi?
Często używanymi przykładami są manipulacje ciągami
Lepsze MID () i inne przykłady ekstrakcji ciągów, których obecnie nie ma w sieci. Pomóż mi zrobić dobry przykład lub uzupełnij ten tutaj. Coś takiego:
DIM strEmpty as String, strNull as String, theText as String
DIM idx as Integer
DIM letterCount as Integer
DIM result as String
strNull = NOTHING
strEmpty = ""
theText = "1234, 78910"
' -----------------
' Extract the word after the comma ", " and before "910" result: "78" ***
' -----------------
' Get index (place) of comma using INSTR
idx = ... ' some explanation here
if idx < ... ' check if no comma found in text
' or get index of comma using FIND
idx = ... ' some explanation here... Note: The difference is...
if idx < ... ' check if no comma found in text
result = MID(theText, ..., LEN(...
' Retrieve remaining word after the comma
result = MID(theText, idx+1, LEN(theText) - idx+1)
' Get word until the comma using LEFT
result = LEFT(theText, idx - 1)
' Get remaining text after the comma-and-space using RIGHT
result = ...
' What happens when things go wrong
result = MID(strNothing, 1, 2) ' this causes ...
result = MID(strEmpty, 1, 2) ' which causes...
result = MID(theText, 30, 2) ' and now...
result = MID(theText, 2, 999) ' no worries...
result = MID(theText, 0, 2)
result = MID(theText, 2, 0)
result = MID(theText -1, 2)
result = MID(theText 2, -1)
idx = INSTR(strNothing, "123")
idx = INSTR(theText, strNothing)
idx = INSTR(theText, strEmpty)
i = LEN(strEmpty)
i = LEN(strNothing) '...
Edytuj ten przykład i popraw go. Tak długo, jak pozostaje to jasne i ma w nim wspólne praktyki użytkowania.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow