Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 函数获取xlFillSeries vba的结尾_Excel_Vba - Fatal编程技术网

Excel 函数获取xlFillSeries vba的结尾

Excel 函数获取xlFillSeries vba的结尾,excel,vba,Excel,Vba,我试图构建一个函数来返回xlFillSeries的结束字符串/单元格值是否有任何方法可以在不实际写入工作表然后选择最后一个单元格的情况下执行此操作?我希望避免操纵工作表/工作簿 . 以下是生成该系列的代码: Dim SeqStart As String, SeqInt As Integer SeqStart = "XYZ100" SeqInt = 42 ' Function should return XYZ141 With Range("A1")

我试图构建一个函数来返回xlFillSeries的结束字符串/单元格值是否有任何方法可以在不实际写入工作表然后选择最后一个单元格的情况下执行此操作?我希望避免操纵工作表/工作簿 .

以下是生成该系列的代码:

 Dim SeqStart As String, SeqInt As Integer
 SeqStart = "XYZ100"
 SeqInt = 42 ' Function should return XYZ141
 With Range("A1")
  .Value = UCase(SeqStart)
  If SeqInt > 1 Then
   .AutoFill Destination:=Range("A1").Resize(SeqInt), Type:=xlFillSeries ' Will cause error if only 1 sample sequence
  End If
 End With

我想利用XLFILL系列来处理奇数数据,Eg:如果我的SEQSTART= <代码> A1B100< /代码>,那么我不能利用ReGEX将这个条带分割成数字,执行数学,然后把它放回一起,因为在字符串的中间有一个<代码> B<代码>。我知道这个系列总是以数字结尾,但我一直在努力从字符串的右边去掉数字部分,而不知道字符串的长度和/或字母数字的奇怪组合

所以我想我的问题可以通过找出如何从字符串的右边去掉数字,然后做数学运算,把字符串重新组合起来来回答。数字是什么增量


或者,我只使用
XlFillSeries
,但不实际写入工作簿。目前我只是将其设置为写入“临时工作表”,然后捕获最后一个单元格并删除临时工作表,但我想知道是否有更好的方法。

特别是谈到
XlFillSeries
如果不写入一个范围,就无法使用它,因此最好的方法是使用“临时工作表”并返回最后一个单元格。也许可以利用函数从字符串的右侧剥离数字,然后重新构建字符串,但我更信任
XlFillSeries
了,只能使用“临时工作表”

以下是我的功能:

注意:有一些自定义函数我不会包括在内,但是你可以根据它们的名称猜出它们是做什么的

Public Function EndOfXlFillSeries(SeqStart As String, SeqInt As Integer) As String
 Dim DestSheet As Worksheet
 WorksheetCreateDelIfExists ("XLFillSeriesTmp")
 Set DestSheet = Worksheets("XLFillSeriesTmp")
 With DestSheet.Range("A1")
  .Value = UCase(SeqStart)
  If SeqInt > 1 Then
   .AutoFill Destination:=DestSheet.Range("A1").Resize(SeqInt), Type:=xlFillSeries ' Will cause error if only 1 SeqInt
  Else
   EndOfXlFillSeries = SeqStart
  End If
 End With
 Dim lRow As Integer
 lRow = lRowOfCol(1)
 EndOfXlFillSeries = DestSheet.Range("A" & lRow).Value
 Call WorksheetDelete(DestSheet)
End Function

您的问题与xlFillSeries无关,因此与它的标题无关。您发布的代码同样与您描述的问题无关,即“找出如何从字符串右侧剥离数字,然后进行数学运算并将字符串重新组合在一起”。不幸的是,这还不足以作为计算分解和重新组装所产生的数字的指南:XYZ100“因此,我投票结束这一问题。它需要一个全面的、深思熟虑的检查,包括一些自己的努力。你无法理解我的问题并提出有意义的澄清要求,这并不会降低问题的清晰度。我添加了更新作为替代解决方案,但我的问题是100%使用
XlFillSeries
,而不写入工作簿。我已经发布了如何利用
XLFillSeries
,但它目前写入工作簿,我希望避免这种情况@变数