使用excel 宏计算 ISO18437_6_CFS 计算表格,提示

需要怎样解决呢?

Sub CFS()
Dim i, j, k As Integer'%%%%%% CLEAR DATA
Worksheets("Reduced segments").Cells.ClearDim index As Variant
index = Array(12, 24, 25, 29, 33)Dim z As IntegerFor i = 0 To 4z = Worksheets("Main CFS").Cells(index(i), Worksheets("Main CFS").Columns.Count).End(xlToLeft).Columnz = z - 1For k = 0 To z - 1Worksheets("Main CFS").Cells(index(i), k + 2).ClearNext k
Next iCharts("Master curve").ChartArea.ClearContents
Charts("log aT").ChartArea.ClearContents
Charts("log bT").ChartArea.ClearContents'%%%%%% ASSIGNING ARRAYS OF DATA
'Counting number of segments
Dim M As Integer
M = Worksheets("Main CFS").Cells(11, Worksheets("Main CFS").Columns.Count).End(xlToLeft).Column
M = M - 1'Counting number of datum points in each segment
Dim N As Integer
N = Worksheets("Raw segments").Cells(Worksheets("Raw segments").Rows.Count, 1).End(xlUp).Row
N = N - 2'Array of temperatures
Dim T As Variant
ReDim T(0 To M - 1) As DoubleFor j = 0 To M - 1T(j) = Worksheets("Main CFS").Cells(11, j + 2) + 273.15
Next j'Reference temperature
Dim ind As Integer
Dim Tref As DoubleTref = Worksheets("Main CFS").Cells(16, 2) + 273.15
ind = Application.Match(Tref, T, False)
ind = ind - 1'Array of segments
Dim logE, logf As Variant
ReDim logE(0 To N - 1, 0 To M - 1), logf(0 To N - 1, 0 To M - 1) As DoubleFor j = 0 To M - 1For i = 0 To N - 1logE(i, j) = Worksheets("Raw segments").Cells(i + 3, 2 * (j + 1))logf(i, j) = Worksheets("Raw segments").Cells(i + 3, 2 * j + 1)Next i
Next j'%%%%%% VERTICAL SHIFTING
'Vertical shift factors
Dim bT, log_bT As Variant
ReDim bT(0 To M - 1), log_bT(0 To M - 1) As DoubleFor j = 0 To M - 1bT(j) = T(j) / Treflog_bT(j) = Log(bT(j)) / Log(10)
Next j'Reduced storage modulus segments
Dim logEr As Variant
ReDim logEr(0 To N - 1, 0 To M - 1) As DoubleFor j = 0 To M - 1For i = 0 To N - 1logEr(i, j) = logE(i, j) - log_bT(j)Next i
Next j'%%%%%% HORIZONTAL SHIFTING
'Individual horizontal shift factors
Dim lgf, lgE As Variant
ReDim lgf(0 To N - 1, 0 To M - 1), lgE(0 To N - 1, 0 To M - 1) As DoubleDim lg_aT As Variant
ReDim lg_aT(0 To M - 2) As DoubleDim P, Q, U, L, r, m1, m2 As IntegerDim my_min, my_max, s1, s2 As DoubleFor j = 0 To M - 2'Point Qmy_min = logEr(0, j)Q = 0'Point Pmy_max = logEr(0, j + 1)P = 0For i = 1 To N - 1If logEr(i, j) < my_min Thenmy_min = logEr(i, j)Q = iEnd IfIf logEr(i, j + 1) > my_max Thenmy_max = logEr(i, j + 1)P = iEnd IfNext i'Point UU = Qm1 = 0Do While logEr(U, j) < my_max And U <= N - 1U = U + 1m1 = m1 + 1Loop'Point LL = Pm2 = 0Do While logEr(L, j + 1) > my_min And L >= 0L = L - 1m2 = m2 + 1LoopIf m1 = 0 Or m2 = 0 ThenMsgBox "CHECK THE DATA!" & vbNewLine & "Some segments do not overlap"lg_aT(j) = 1000Else'Point UFor r = Q To U - 1lgf(r, j) = logf(r, j)lgE(r, j) = logEr(r, j)Next rlgf(U, j) = logf(U - 1, j) + (my_max - logEr(U - 1, j)) * (logf(U, j) - logf(U - 1, j)) / (logEr(U, j) - logEr(U - 1, j))lgE(U, j) = my_max'Point LFor r = L + 1 To Plgf(r, j + 1) = logf(r, j + 1)lgE(r, j + 1) = logEr(r, j + 1)Next rlgf(L, j + 1) = logf(L - 1, j + 1) + (my_min - logEr(L - 1, j + 1)) * (logf(L, j + 1) - logf(L - 1, j + 1)) / (logEr(L, j + 1) - logEr(L - 1, j + 1))lgE(L, j + 1) = my_min'Individual shift factors1 = 0For r = Q To U - 1s1 = s1 + (lgf(r + 1, j) + lgf(r, j)) * (lgE(r + 1, j) - lgE(r, j)) / 2Next rs2 = 0For r = L To P - 1s2 = s2 + (lgf(r + 1, j + 1) + lgf(r, j + 1)) * (lgE(r + 1, j + 1) - lgE(r, j + 1)) / 2Next rlg_aT(j) = (s2 - s1) / (lgE(Q, j) - lgE(P, j + 1))End If
Next j'Final horizontal shift factors
Dim log_aT As Variant
ReDim log_aT(0 To M - 1) As Doublelog_aT(ind) = 0'Tk > Tref
For j = ind + 1 To M - 1s1 = 0For k = ind To j - 1s1 = s1 + lg_aT(k)Next klog_aT(j) = log_aT(ind) + s1
Next j'Tk < Tref
For j = ind - 1 To 0 Step -1s2 = 0For k = j To ind - 1s2 = s2 + lg_aT(k)Next klog_aT(j) = log_aT(ind) - s2
Next j'Reduced frequency
Dim logfr As Variant
ReDim logfr(0 To N - 1, 0 To M - 1) As DoubleFor j = 0 To M - 1For i = 0 To N - 1logfr(i, j) = logf(i, j) + log_aT(j)Next i
Next j'%%%%%% ASIGNING VALUES TO SHEET CELLS
'Temperature in K
For j = 0 To M - 1Worksheets("Main CFS").Cells(12, j + 2).Value = T(j)
Next j
Worksheets("Main CFS").Cells(17, 2) = Tref'Vertical shift factors
For j = 0 To M - 1Worksheets("Main CFS").Cells(24, j + 2).Value = bT(j)Worksheets("Main CFS").Cells(25, j + 2).Value = log_bT(j)
Next j'Reduced storage modulus segments
Worksheets("Reduced segments").Rows(1).EntireRow.Value = Worksheets("Raw segments").Rows(1).EntireRow.Value
Worksheets("Reduced segments").Rows(1).Font.Bold = TrueWorksheets("Reduced segments").Rows(2).EntireRow.Value = Worksheets("Raw segments").Rows(2).EntireRow.Value
Worksheets("Reduced segments").Rows(2).Interior.Color = RGB(146, 208, 80)
Worksheets("Reduced segments").Rows(2).Font.Bold = TrueFor j = 0 To M - 1For i = 0 To N - 1Worksheets("Reduced segments").Cells(i + 3, 2 * (j + 1)).Value = logEr(i, j)Next i
Next jWorksheets("Reduced segments").Columns.AutoFit'Individual horizontal shift factors
For j = 0 To M - 2Worksheets("Main CFS").Cells(29, j + 2).Value = lg_aT(j)
Next j'Final horizontal shift factors
For j = 0 To M - 1Worksheets("Main CFS").Cells(33, j + 2).Value = log_aT(j)
Next j'Reduced frequency
For j = 0 To M - 1For i = 0 To N - 1Worksheets("Reduced segments").Cells(i + 3, 2 * j + 1).Value = logfr(i, j)Next i
Next j'%%%%%% PLOT RESULTS
'Master curve
Dim mcChart As Chart
Dim X_mc, Y_mc As Variant
ReDim X_mc(0 To N - 1), Y_mc(0 To N - 1) As DoubleSet mcChart = Charts("Master curve")With mcChart'.Name = "Master curve".ChartType = xlXYScatterLines.HasTitle = True.ChartTitle.Text = "Master curve at Tref = " & Tref - 273.15 & Chr(176) & "C".Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "log f, Hz".Axes(xlCategory).AxisTitle.Font.Size = 18.Axes(xlValue, xlPrimary).HasTitle = True.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "log M', Pa".Axes(xlValue).AxisTitle.Font.Size = 18For j = 0 To M - 1Set srs1 = .SeriesCollection.NewSeriesWith srs1For i = 0 To N - 1X_mc(i) = Worksheets("Reduced segments").Cells(i + 3, 2 * j + 1)Y_mc(i) = Worksheets("Reduced segments").Cells(i + 3, 2 * (j + 1))Next i.XValues = X_mc.Values = Y_mc.Name = "T = " & T(j) - 273.15 & Chr(176) & "C"End WithNext j.HasLegend = True.Legend.Font.Size = 12
End With'Horizontal shift factors
Dim hsChart As Chart
Dim X_hs, Y_hs As Variant
ReDim X_hs(0 To M - 1), Y_hs(0 To M - 1) As DoubleSet hsChart = Charts("log aT")
With hsChart.ChartType = xlXYScatterLines.HasTitle = True.ChartTitle.Text = "Horizontal shift factors at Tref = " & Tref - 273.15 & Chr(176) & "C".HasLegend = False.Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T, " & Chr(176) & "C".Axes(xlCategory).AxisTitle.Font.Size = 18.Axes(xlValue, xlPrimary).HasTitle = True.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "log aT".Axes(xlValue).AxisTitle.Font.Size = 18Set srs2 = .SeriesCollection.NewSeriesWith srs2For j = 0 To M - 1X_hs(j) = Worksheets("Main CFS").Cells(11, j + 2)Y_hs(j) = Worksheets("Main CFS").Cells(33, j + 2)Next j.XValues = X_hs.Values = Y_hsEnd With
End With'Vertical shift factors
Dim vsChart As Chart
Dim X_vs, Y_vs As Variant
ReDim X_vs(0 To M - 1), Y_vs(0 To M - 1) As DoubleSet vsChart = Charts("log bT")
With vsChart.ChartType = xlXYScatterLines.HasTitle = True.ChartTitle.Text = "Vertical shift factors at Tref = " & Tref - 273.15 & Chr(176) & "C".HasLegend = False.Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "T, " & Chr(176) & "C".Axes(xlCategory).AxisTitle.Font.Size = 18.Axes(xlValue, xlPrimary).HasTitle = True.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "log bT".Axes(xlValue).AxisTitle.Font.Size = 18Set srs3 = .SeriesCollection.NewSeriesWith srs3For j = 0 To M - 1X_vs(j) = Worksheets("Main CFS").Cells(11, j + 2)Y_vs(j) = Worksheets("Main CFS").Cells(25, j + 2)Next j.XValues = X_vs.Values = Y_vsEnd With
End WithEnd Sub

excel运行提示运行错误9,下标越界,怎么处理相关推荐

  1. 关于电子邮件客户端设计中QQ邮箱授权码问题。(运行提示535错误,说授权码error。)

    问题简述 针对QQ邮箱. 在运行设计的电子邮件客户端程序显示535授权码错误,尝试过非常多次更换授权码依然失败. 问题解决 1.进入QQ邮箱,设置--账户页面. 2.在此处注册一个英文邮件账号. 3. ...

  2. python加载包出错_python导入Pmw包运行提示一下错误

    我是Centos7.2的系统 python版本是2.7.5 错误提示: Traceback (most recent call last): File "./py020.py", ...

  3. 电脑运行VirtualBox虚拟机总是提示0x00000000错误的解决方法

    最近有用户发现在电脑中运行VirtualBox虚拟机,总是提示0x00000000错误"0x00000000指令引用的0x00000000内存该内存不能为written,",这是由 ...

  4. VS2013编译提示无法运行“rc.exe”错误

    VS2013编译提示无法运行"rc.exe"错误,网上搜了好多,说是改path变量的,平台改成带xp的哪个,替换rc.exe等一堆问题,都没有解决. 之后用google搜到一篇英文 ...

  5. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。...

    nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本. 这是你笔记本禁止运行脚本,解决办法 ...

  6. nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1。

    nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1.是因为你的笔记本电脑禁止运行脚本,解决办法如下: 1.在搜索区域中 ...

  7. excel打开提示不适合这台计算机,《win10提示excle安装》 win10 :Excel文件打不开、显示“此应用无法在你的电脑上运行”怎么办?...

    win10怎么样两个excel表分开在桌面显示 1要进行对比的2张excel表格,电脑桌面,如下图: 2.双击打2张excel,如下图: 3电脑底部任务栏显示会已经打开的2个excel的表格信息,如下 ...

  8. Qt5.5-msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误

    问题描述:在win7系统上,使用Qt5.5+msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误. 解决过程: 在网上查看解决方案,一度受到误导,看到大量的说需要安装D ...

  9. 万象2004修改服务器IP,win10系统运行万象网管2004服务端提示”类型转换错误”的图文办...

    现如今,几乎家家户户都有一台电脑,当我们操作win10系统的过程中常常会碰到win10系统运行万象网管2004服务端提示"类型转换错误"的问题,有什么好的办法去解决win10系统运 ...

最新文章

  1. vue 父页面中的方法 调用_解决Vue中页面成功渲染数据undefined的问题
  2. 详解jQuery对象与DOM对象的相互转换
  3. C++中 auto自动变量,命名空间,using作用以及作用域
  4. 【Android】动态更新Icon
  5. linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝
  6. VSS不需要验证自动登录的问题
  7. ebs 供应商地点信息_供应商,地址,业务实体,地点关联银行账户
  8. java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
  9. pyspark 读取csv文件创建DataFrame的两种方法
  10. 使用 Netsh.exe 配置 WinHTTP 的代理设置
  11. flutter: The method ‘DioHttpHeaders.add‘ has fewer named arguments thanthose of overridden ....
  12. wps文件没有保存怎么恢复,学这一招就够了!
  13. 推荐一款微信小程序《诗词万卷》
  14. 股票学习-量柱和k线-第一天
  15. 小程序开发需要多少钱?
  16. 基础篇——ROS入门:学习资料、基本介绍、安装配置、文件系统、包创建
  17. C语言程序设计第四次作业——选择结构(2)
  18. 第五章 系统方法---------基于业务驱动的企业安全架构(翻译,原作者John Sherwood)----仅学习使用
  19. DSC和HD医学图像分割评价指标
  20. 如何在IDEA中写Java程序

热门文章

  1. 短视频运营小技巧,标题文案都很重要,还有配音也别忘记
  2. 用QT开发软件怎么实现一键换肤
  3. 记录一次虚拟机内存黑洞的追查过程
  4. Keras-深度学习-神经网络-电影评论情感分析模型
  5. cad线性标注命令_cad如何修改线性标注大小
  6. android 中字体加粗
  7. JavaScript 中常见排序算法详解
  8. 潇洒老师浅谈高光无痕注塑模具及成型技术
  9. 入门、复习微服务的同学看过来,一篇文章让你彻底搞懂微服务
  10. Bert系列:如何用bert模型输出文本的embedding