javascript - Excel - json数据 - 将某些元素返回到相邻单元格公式/宏

标签 javascript excel vba

我有很多行中的 json 数据,需要在 Excel 中从中提取某些数据,有办法做到这一点吗?我提供了一个典型单元格的示例,为了简单起见,我如何从中提取“Lat”和“lng”值并将它们放置在相邻的单元格中。假设 json 位于单元格 D2 中,我需要 E3 中的“lat”和 F3 中的“Lng”:

projectId:'5571511970726f3903000000',
lat:13.737738,
lng:100.566147,
destinations:[{"id":"57bc75550ce0fe28af001609","name":"BrownEyesRestaurant","category_name":"restaurant","category_class_name":"restaurants","lat":13.737875,"lng":100.566806,"travel_time":"lessthanaminutebyfoot","distance_human":"39m","distance_in_meters":39},{"id":"57bc75550ce0fe28af00160a","name":"HanaHana","category_name":"restaurant","category_class_name":"restaurants","lat":13.738215,"lng":100.566701,"travel_time":"1minutebyfoot","distance_human":"48m","distance_in_meters":48},{"id":"57bc75550ce0fe28af001602","name":"7-Eleven","category_name":"convenience_store","category_class_name":"shopping","lat":13.73763,"lng":100.566934,"travel_time":"1minutebyfoot","distance_human":"55m","distance_in_meters":55},{"id":"57bc75550ce0fe28af001636","name":"GoldenShrine","category_name":"pokestop","category_class_name":"pokemon_places","lat":13.737763,"lng":100.567128,"travel_time":"1minutebyfoot","distance_human":"74m","distance_in_meters":74},{"id":"57bc75550ce0fe28af00160d","name":"FatFishSeafoodBistro","category_name":"restaurant","category_class_name":"restaurants","lat":13.737128,"lng":100.567127,"travel_time":"2minutesbyfoot","distance_human":"130m","distance_in_meters":126},{"id":"57bc75550ce0fe28af001635","name":"NARZStoneBalls","category_name":"pokestop","category_class_name":"pokemon_places","lat":13.738174,"lng":100.56538,"travel_time":"2minutesbyfoot","distance_human":"140m","distance_in_meters":142},

屏幕截图上所需输出的示例:

enter image description here

最佳答案

如果您不想提取 json,请尝试此代码。

Sub test()
    Dim s As String
    Dim vSplit

    s = Range("d2")
    vSplit = Split(s, ",")
    Range("e2") = Val(Replace(vSplit(1), "lat:", ""))
    Range("f2") = Val(Replace(vSplit(2), "lng:", ""))

End Sub

编辑

Sub test()
    Dim s As String
    Dim vSplit
    Dim vDB, vR()
    Dim i As Long, n As Long
    vDB = Range("d2", Range("d" & Rows.Count).End(xlUp))
    n = UBound(vDB, 1)
    ReDim vR(1 To n, 1 To 2)
    For i = 1 To n
        s = vDB(i, 1)
        vSplit = Split(s, ",")
        vR(i, 1) = Val(Replace(vSplit(1), "lat:", ""))
        vR(i, 2) = Val(Replace(vSplit(2), "lng:", ""))
    Next i
    Range("e2").Resize(n, 2) = vR
End Sub

关于javascript - Excel - json数据 - 将某些元素返回到相邻单元格公式/宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782270/

相关文章:

vba - 选择每第 N 行,Excel。替换为任何内容或原始单元格内容

vba Vlookup类型不匹配

excel - 使用 VBA 将特定列从工作簿复制到另一个

vba - 如何改变 Excel 图表中的标记颜色?

excel - ScreenUpdating = False 不工作

javascript - 如何使用 TypeScript 的 keyof 访问器定义返回类型?

javascript - 通过 JavaScript 保存后关闭模式对话框(表单窗口)?

javascript - JQuery 自动完成后获取 ID 的值

javascript - 避免在 CMS 的所有页面上使用 jQuery 中的全局上下文

excel - 在 UDF 中使用命名范围