Эта функция может быть полезна.
public static function getStringBetween($str,$from,$to, $withFromAndTo = false)
{
$sub = substr($str, strpos($str,$from)+strlen($from),strlen($str));
if ($withFromAndTo)
return $from . substr($sub,0, strrpos($sub,$to)) . $to;
else
return substr($sub,0, strrpos($sub,$to));
}
$inputString = "ignore everything except this (text)";
$outputString = getStringBetween($inputString, '(', ')'));
echo $outputString;
//output will be test
$outputString = getStringBetween($inputString, '(', ')', true));
echo $outputString;
//output will be (test)
strpos () =>, которая используется для поиска положения первого появления в строке.
strrpos () => который используется для поиска положения первого появления в строке.
Вы звоните Range()
неправильно. Попробуйте это:
LastRow = ws.Cells(1, Rows.Count).End(xlUp).Row
или
LastRow = ws.Range("A" & rows.count).End(xlUp).Row
Первоначально, это было решено в основном ws.Range(1 & 1048576)...
-> ws.Range(11048576).End(xlUp).Row
, что A) не является правильным Range
и B) является несуществующим номером строки.
Также обратите внимание, что это xlUp
, а не x1Up
(это «L», а не «1»)