- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Excel VBA。我有一个字符串想要写入单元格。我不确定实际的字符限制是什么,但是对于很长的字符,我会收到运行时错误。这是程序中断的行:
Cells(i, 7).Formula = region_opp_amount & ")"
此场景中的字符串“region_opp_amount”的长度为 1691。它基本上是一个大型 SUM 公式。以下是该字符串包含的内容(要求和的大单元格列表):“=sum(G2057,G2066,G2069,G2072,G2076,G2079,G2082,.....”
有什么办法可以克服这个限制吗?
这是创建此字符串的实际循环:
Do While i <= lastRow
If Cells(i, 2).value <> "" Or i = lastRow Then
If i <> lastRow Then
region = Left(Cells(i, 2).value, InStr(Cells(i, 2).value, " - ") - 1)
rep = Right(Cells(i, 2).value, Len(Cells(i, 2).value) - InStr(Cells(i, 2).value, " - ") - 2)
Else
region = ""
rep = ""
i = i + 1
End If
If rep <> last_rep And i <> 2 Then
Rows(i).Insert
With Rows(i)
.ClearFormats
.Font.Bold = True
On Error Resume Next
.Ungroup
On Error GoTo 0
End With
lastRow = lastRow + 1
Cells(i, 2).value = last_rep & " Subtotal:"
Cells(i, 7).Formula = rep_opp_amount & ")"
Cells(i, 9).Formula = replace(rep_opp_amount, "G", "I") & ")"
Cells(i, 12).Formula = "=sum(L" & CStr(rep_start) & ":L" & CStr(i - 1) & ")"
Cells(i, 13).Formula = "=sum(M" & CStr(rep_start) & ":M" & CStr(i - 1) & ")"
Cells(i, 14).Formula = "=sum(N" & CStr(rep_start) & ":N" & CStr(i - 1) & ")"
Cells(i, 15).Formula = "=sum(O" & CStr(rep_start) & ":O" & CStr(i - 1) & ")"
Range("B" & CStr(i) & ":O" & CStr(i)).Interior.Color = 10092543
'Rows(CStr(rep_start) & ":" & CStr(i - 1)).Group
ReDim Preserve rep_group_array(y)
rep_group_array(y) = CStr(rep_start) & ":" & CStr(i - 1)
y = y + 1
i = i + 1
rep_opp_amount = "=sum("
rep_start = i
End If
If region <> last_region And i <> 2 Then
Rows(i).Insert
With Rows(i)
.ClearFormats
.Font.Bold = True
On Error Resume Next
.Ungroup
On Error GoTo 0
End With
lastRow = lastRow + 1
rep_start = rep_start + 1
Cells(i, 2).value = last_region & " Subtotal:"
Cells(i, 7).Formula = region_opp_amount & ")"
Cells(i, 9).Formula = replace(region_opp_amount, "G", "I") & ")"
Cells(i, 12).Formula = replace(region_opp_amount, "G", "L") & ")"
Cells(i, 13).Formula = replace(region_opp_amount, "G", "M") & ")"
Cells(i, 14).Formula = replace(region_opp_amount, "G", "N") & ")"
Cells(i, 15).Formula = replace(region_opp_amount, "G", "O") & ")"
total_opp_amount = total_opp_amount & "G" & CStr(i) & ","
Range("B" & CStr(i) & ":O" & CStr(i)).Interior.Color = 5296274
'Rows(CStr(region_start) & ":" & CStr(i - 1)).Group
ReDim Preserve group_array(index)
group_array(index) = CStr(region_start) & ":" & CStr(i - 1)
index = index + 1
i = i + 1
region_opp_amount = "=sum("
region_start = i
End If
rep_opp_amount = rep_opp_amount & "G" & CStr(i) & ","
region_opp_amount = region_opp_amount & "G" & CStr(i) & ","
last_region = region
last_rep = rep
End If
i = i + 1
Loop
出错时字符串包含以下内容: =总和(G2057,G2066,G2069,G2072,G2075,G2079,G2082,G2085,G2089,G2092,G2097,G2100,G2103,G2106,G2109,G2112,G2118,G2122,G2125,G2128 ,G2133,G2134,G2137,G2142 ,G2145,G2152,G2155,G2159,G2162,G2165,G2170,G2173,G2176,G2182,G2188,G2191,G2195,G2200,G2203,G2207,G2210,G2213,G2220,G2224, G2227、G2232、G2236、G2239、G2243 ,G2248,G2254,G2257,G2260,G2266,G2272,G2275,G2280,G2283,G2287,G2291,G2295,G2298,G2302,G2308,G2311,G2315,G2318,G2321,G2324, G2330、G2333、G2337、G2340、G2345 ,G2348,G2353,G2356,G2360,G2363,G2390,G2393,G2397,G2404,G2407,G2410,G2413,G2422,G2425,G2433,G2437,G2441,G2448,G2449,G2453, G2456、G2466、G2470、G2476、G2480 ,G2484,G2485,G2499,G2505,G2508,G2513,G2516,G2519,G2526,G2530,G2533,G2537,G2543,G2547,G2550,G2553,G2556,G2557,G2560,G2563, G2566、G2580、G2581、G2586、G2589 ,G2601,G2605,G2611,G2614,G2619,G2625,G2628,G2633,G2638,G2646,G2649,G2653,G2659,G2670,G2673,G2677,G2680,G2683,G2686,G2698, G2701、G2704、G2705、G2708、G2711 ,G2714,G2718,G2721,G2725,G2729,G2733,G2742,G2745,G2748,G2754,G2757,G2762,G2766,G2769,G2773,G2776,G2779,G2784,G2789,G2792, G2795、G2798、G2801、G2804、G2808 ,G2811,G2814,G2818,G2834,G2837,G2840,G2845,G2848,G2851,G2854,G2864,G2868,G2869,G2872,G2876,G2879,G2882,G2885,G2888,G2892, G2896、G2900、G2901、G2904、G2909 ,G2912,G2915,G2919,G2923,G2926,G2930,G2933,G2936,G2946,G2952,G2956,G2959,G2964,G2967,G2971,G2974,G2977,G2980,G2983,G2984, G2989、G2992、G2996、G3000、G3003 ,G3009,G3014,G3024,G3029,G3032,G3035,G3038,G3041,G3044,G3045,G3048,G3052,G3055,G3056,G3059,G3062,G3065,G3069,G3073,G3077, G3081、G3084、G3088、G3093、G3096 ,G3099,G3100,G3103,G3107,G3110,G3113,G3119,G3124,G3127,G3130,G3135,G3138,G3141,G3142,G3143,G3146,G3147,G3150,G3151,G3152, G3155、G3156、G3157、G3160、G3174 ,G3176,G3181,G3188,G3191,G3198,G3203,G3206,G3210,
最佳答案
好的,这是一个例子。在这个例子中,我直接采用了问题中提到的字符串。
逻辑:
XFD1048576
这样的单元格)MyRange1、MyRange2、MyRange3...
之类的名称。人们可以使用更短的名称,例如 Rng1,Rng2...
代码:
Option Explicit
Sub Sample()
Dim MyAr() As String
Dim strRng As String, strFormula As String, strTmp As String
Dim i As Long, nmRngCount As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
'~~> Sample Cells
strRng = "G2057,G2066,G2069,G2072,G2075,G2079,G2082,G2085,G2089,G2092,G2097,G2100,G2103,G2106,G2109,G2112,G2118,G2122,G2125,G2128,G2133,G2134,G2137,G2142,"
strRng = strRng & "G2145,G2152,G2155,G2159,G2162,G2165,G2170,G2173,G2176,G2182,G2188,G2191,G2195,G2200,G2203,G2207,G2210,G2213,G2220,G2224,G2227,G2232,G2236,"
strRng = strRng & "G2239,G2243,G2248,G2254,G2257,G2260,G2266,G2272,G2275,G2280,G2283,G2287,G2291,G2295,G2298,G2302,G2308,G2311,G2315,G2318,G2321,G2324,G2330,"
strRng = strRng & "G2333,G2337,G2340,G2345,G2348,G2353,G2356,G2360,G2363,G2390,G2393,G2397,G2404,G2407,G2410,G2413,G2422,G2425,G2433,G2437,G2441,G2448,G2449,"
strRng = strRng & "G2453,G2456,G2466,G2470,G2476,G2480,G2484,G2485,G2499,G2505,G2508,G2513,G2516,G2519,G2526,G2530,G2533,G2537,G2543,G2547,G2550,G2553,G2556,"
strRng = strRng & "G2557,G2560,G2563,G2566,G2580,G2581,G2586,G2589,G2601,G2605,G2611,G2614,G2619,G2625,G2628,G2633,G2638,G2646,G2649,G2653,G2659,G2670,G2673,"
strRng = strRng & "G2677,G2680,G2683,G2686,G2698,G2701,G2704,G2801,G2804,G2808,G2811,G2814,G2818,G2834,G2837,G2840,G2845,G2848,G2851,G2854,G2864,G2868,G2869,"
strRng = strRng & "G2882,G2885,G2888,G2892,G2896,G2900,G2901,G2904,G2909,G2912,G2915,G2919,G2923,G2926,G2930,G2933,G2936,G2946,G2952,G2956,G2959,G2964,G2967,"
strRng = strRng & "G2983,G2984,G2989,G2992,G2996,G3000,G3003,G3009,G3014,G3024,G3029,G3032,G3035,G3038,G3041,G3044,G3045,G3048,G3052,G3055,G3056,G3059,G3062,"
strRng = strRng & "G3081,G3084,G3088,G3093,G3096,G3099,G3100,G3103,G3107,G3110,G3113,G3119,G3124,G3127,G3130,G3135,G3138,G3141,G3142,G3143,G3146,G3147,G3150,"
strRng = strRng & "G3157,G3160,G3174,G3176,G3181,G3188,G3191,G3198,G3203,G3206,G3210"
'~~> Split each cell and store it's address in an array
MyAr = Split(strRng, ",")
nmRngCount = 1
'~~> Loop through the array and rejoin the cell addresses
For i = LBound(MyAr) To UBound(MyAr)
strTmp = strTmp & "," & MyAr(i)
'~~> 230 seems a pretty safe number even if I consider cells like XFD1048576)
If Len(strTmp) > 230 Then
'~~> Ignore the 1st Comma
strTmp = Mid(strTmp, 2)
'~~> Creat Names for the range
ws.Range(strTmp).Name = "MyRange" & nmRngCount
nmRngCount = nmRngCount + 1
strTmp = ""
End If
Next i
'~~> Join the Names so that we get something like
'~~> MyRange1,MyRange2,MyRange3,....
For i = 1 To (nmRngCount - 1)
strFormula = strFormula & "," & "MyRange" & i
Next
'~~> Ignore the 1st Comma
strFormula = Mid(strFormula, 2)
'~~> Insert the final formula
ws.Range("A1").Formula = "=SUM(" & strFormula & ")"
End Sub
屏幕截图
因此这 6 个命名范围覆盖了大约 240 个单元格。
关于excel - 如何使用 VBA 在 Excel 单元格中输入大字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225229/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!